2013-09-22 134 views
1

在我的根目錄中,我有一個用戶文件,其中包含<a href="/dashboard?name={$row['sub_user']}">,我希望它轉到username.website/sub_user。這個重寫工作正常,但所有.php請求都會轉到username.website/dashboard而不是username.website/sub_user。你能告訴我爲什麼?重定向到網站/用戶名

RewriteCond %{REQUEST_URI} !^/dashboard?

RewriteRule ^(.*)\.php$ dashboard?name=$1 [L]

我也有一些規則,以擺脫PHP擴展的:

RewriteCond %{QUERY_STRING} !^no-redirect-loop(&|$)

RewriteRule ^(.*)\.php$ $1 [NS,R=301,L]

RewriteCond %{QUERY_STRING} !^no-redirect-loop(&|$)

RewriteRule ^(.*)$ $1.php?no-redirect-loop [NS,QSA]

回答

1

你的規則是不正確的:

RewriteCond %{REQUEST_URI} !^/dashboard? 
RewriteRule ^(.*)\.php$ dashboard?name=$1 [L] 

既然是發送foo.php文件/dashboard?name=foo

您的規則更改爲這使其工作:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ dashboard?name=$1 [L,QSA] 
+0

這是完美但結果與.php一起,我無法獲得sub_user。請參閱編輯。 – phcm

+0

明白了,我不得不在.php這裏^([^ /] +).php /?$。謝謝! – phcm

+0

不客氣,很高興它爲你解決。 – anubhava