htaccess:RewriteRule无效。

时间:2013-09-08 13:46:09

标签: .htaccess mod-rewrite

我按照desiquintans教程如何清理网址。在我的案例中www.mySite.com/detail.php?id=324除了它影响其他页面外它效果很好。

这就是我的.htaccess文件的样子:

RewriteBase /
RewriteEngine on
Options All -Indexes
DirectoryIndex index.php index.html index.htm
RewriteRule ^([0-9]+)$ detail.php?id=$1
RewriteRule ^([0-9]+)/$ detail.php?id=$1

最后一行让Chrome警告我某些路径不同的网页上的重定向周期。它不应该只影响'detail.php?id ='扩展名?

的网页

1 个答案:

答案 0 :(得分:5)

我怀疑你的问题是因为你的选择,试一试。

Options +FollowSymLinks -MultiViews -Indexes

DirectoryIndex index.php index.html index.htm

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ /detail.php?id=$1 [L]

我也将你的规则削减为一个/?使得最后一个斜线可选,因此它应该适用于两者。

这两个条件可以防止您重定向现有的文件和文件夹。

请注意,您的规则应仅影响以带有和不带结尾斜线的数字开头和结尾的URI,例如:

 http://domain.com/1234/
 http://domain.com/1234
 http://domain.com/200
 http://domain.com/420/

它不会影响任何其他网址。