我正在使用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>
答案 0 :(得分:2)
所以你想要继续/跳过你的目录测试 - 因为这是我猜的 - 然后你需要修改:
RewriteRule ^([^/]*)/$ /?page=$1%{QUERY_STRING} [L]
进入其中两个 - 处理/和非斜杠情况 - 或只是一个
RewriteRule ^([^/]*)/?$ /?page=$1%{QUERY_STRING} [L]
假设这就是你想要的。你可能希望它更像L
RewriteRule ^([^/.]+)/?$ /?page=$1&%{QUERY_STRING} [L]
我还添加了一个&amp; - 因为我猜你也需要它。