2014-05-17 98 views
1

我有mod_rewrite問題。Mod_rewrite問題

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ $1.php [L,QSA] 

RewriteRule ^article/(.+)$ /article.php?article=$1 

這是我的.htaccess。使用第一個rewrite_rule,我隱藏文件擴展名。 它工作沒有問題。通過第二條規則,我喜歡將「article.php?article = Example」轉換爲「article/Example」。但每當我嘗試通過「文章/示例」訪問該頁面時,我都會收到500內部服務器錯誤。第一條規則工作正常,我也可以使用article.php?article = Example訪問該頁面。

回答

0

扭轉你的規則順序,並使用MultiViews禁用內容協商:

Options +FollowSymLinks -MultiViews 
RewriteEngine on 

RewriteRule ^article/(.+)$ /article.php?article=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ $1.php [L] 
+0

謝謝,沒有它工作得很好:) – Kommodore

+0

不客氣,很高興它的工作。 – anubhava