我正在尝试创建一个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
我完全超出了我的深度,所以任何帮助都将非常感激。
答案 0 :(得分: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/会涵盖大部分内容。