0

我正在尝试创建一个 mod_rewrite 规则,该规则将创建一个可以使用或不使用尾部斜杠的友好 URL。

例如。domain.com/index.php?id=421 可供用户输入 domain.com/421 或 domain.com/421/ 访问。

我目前有(相当简单的)规则:

RewriteEngine On
RewriteRule /(.*)$ /index.php?id=$1  

只要有一个斜杠,它就可以正常工作,但是如果输入的 URL 没有一个,则会重新写入 domain.com/domain.com/index.php?id=421

我在这里完全超出了我的深度,因此将不胜感激任何帮助。

4

1 回答 1

1

好的,我解决了这个问题。首先,我最终在圈子里转了很长时间的原因是我的浏览器正在缓存 .htaccess 文件(不知道他们这样做了!)所以无论我尝试什么都没有什么效果!一旦我解决了这个问题,解决问题就轻而易举了,这要感谢我在数小时的挫折中所阅读的所有内容。我的解决方案是:-

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301] 
RewriteRule (.*)/ index.php?id=$1 [L]

如果有人需要对此代码的解释,其中大部分内容都在http://enarion.net/web/htaccess/trailing-slash/中介绍。

于 2013-01-23T05:21:26.937 回答