我正在对我正在处理的网站上的许多网址进行痛苦的重写,但我注意到一个小问题:
RewriteRule ^domains/transfer$ ./cart.php?gid=11 [L,NC]
如果我转到此行,则导航:
http://my-site/domains/transfer
但它不适用于尾随/:
http://my-site/domains/transfer/
有没有办法可以更改RewriteCode以获取任一参数并转到同一页面。将同一行包含两次以包含'/'
似乎很浪费任何帮助都将不胜感激。
干杯
答案 0 :(得分:3)
将行更改为:
RewriteRule ^domains/transfer/?$ ./cart.php?gid=11 [L,NC]
魔法就在这里:/?
并且允许前面的字符(在本例中为斜杠(/
))是可选的。
如果您想在transfer
之后找到符合条件的内容,请删除标记可允许匹配结束的美元符号($
)。
答案 1 :(得分:0)
我建议您只允许一个网址表单,包含或不包含尾部斜杠的表单,如果格式错误则重定向:
# remove trailing slash
RewriteRule (.*)/$ /$1 [L,R=301]
# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ /$0/ [L,R=301]