mod_rewrite有问题添加尾部斜杠

时间:2010-11-15 21:58:12

标签: mod-rewrite

我正在使用mod_rewrite将友好的URL(site.com/page/)转换为友好的脚本(?page = page)除了一件事之外,这一切都完美无缺。如果你在URL上留下尾随斜线,它会断开并获得404。

我尝试使用this post中的解决方案(稍加修改),但似乎没有效果。这里的参考是我的.htaccess重写;

<IfModule mod_rewrite.c>
RewriteEngine On

Options +FollowSymLinks  
Options +Indexes  
RewriteEngine On
RewriteBase /

#force trailing slashes on real directories
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [R]
RewriteRule ^images - [L]
RewriteRule ^([^/]*)/$ /?page=$1%{QUERY_STRING} [L]

</IfModule>

1 个答案:

答案 0 :(得分:2)

所以你想要继续/跳过你的目录测试 - 因为这是我猜的 - 然后你需要修改:

RewriteRule ^([^/]*)/$ /?page=$1%{QUERY_STRING} [L]

进入其中两个 - 处理/和非斜杠​​情况 - 或只是一个

RewriteRule ^([^/]*)/?$ /?page=$1%{QUERY_STRING} [L]

假设这就是你想要的。你可能希望它更像L

RewriteRule ^([^/.]+)/?$ /?page=$1&%{QUERY_STRING} [L]

我还添加了一个&amp; - 因为我猜你也需要它。