htaccess:RewriteRule无效.

Toy*_*dor 1 .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
Run Code Online (Sandbox Code Playgroud)

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

Pri*_*rix 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]
Run Code Online (Sandbox Code Playgroud)

我也将你的规则切割为一个/?使最后一个斜线可选,所以它应该适用于两者.

并且有两个条件可以防止您重定向现有的文件和文件夹.

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

 http://domain.com/1234/
 http://domain.com/1234
 http://domain.com/200
 http://domain.com/420/
Run Code Online (Sandbox Code Playgroud)

它不会影响任何其他URL.