2013-07-22 55 views
0

截至目前我有一個通用查詢「查看」我將在大多數頁面上使用...多頁,但相同的查詢URL重寫

我改寫爲:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ $1.php?view=$2 [L] 

我的網址是:

classroom.php視圖創建=

我希望它看起來像:

教室/創建

我有工作,但它搞砸了其他URL

dashboard.php剛剛/儀表板​​

但是當我做了爆發第一次重寫規則...

這些事情是痛苦的und erstand。

我的問題是我怎麼能/儀表板,/教室,/教室/創作工作?

編輯:我得到了它的工作:

RewriteRule ^([a-zA-Z0-9_-]+)$ $1.php [L] 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ $1.php?view=$2 [L] 
+0

這是什麼問題?你使用mod_rewrite嗎?顯示你的規則。 – Darek

+0

我編輯它來回答你的問題。 – Dom

回答

0

第2條規則是外部重定向,果然.php到像規則的格式其餘目錄中的內部重定向這使美麗的網址並不顯示重定向。

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

# Redirect /classroom.php?view=creation to /classroom/creation 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+classroom\.php\?view=([^\s]+) [NC] 
RewriteRule^/classroom/%1? [R=302,L] 

# Redirect /classroom.php to /classroom and /dashboard.php to /dashboard 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(classroom|dashboard)\.php [NC] 
RewriteRule^/%1 [R=302,L] 

# Internally forward /classroom/creation to /classroom.php?view=creation 
RewriteRule ^classroom/(.*)/?$ /classroom.php?view=$1 [L,QSA,NC] 

# Internally forward /classroom to /classroom.php and /dashboard to /dashboard.php 
RewriteRule ^(classroom|dashboard)/?$ /$1.php [L,QSA,NC] 
+0

與我最近的編輯相比,是否有理由像你死一樣去做?我在兩行中完成同樣的事情不是我嗎? – Dom

+0

@Dom如果你做了yourdomain.com/classroom.php,你仍然可以訪問php文件,你現在正在做的是簡單地將漂亮的URL重定向到文件內部,而不是將文件本身重定向到漂亮的URL。 – Prix

+0

非常有趣。那麼這是否意味着那裏的大型網站有着不同規則的.ht_access?沒有辦法在全球範圍內做到這一點? – Dom