mod_rewrite的问题

时间:2014-05-17 10:52:58

标签: regex apache .htaccess 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。

1 个答案:

答案 0 :(得分: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]