更改重写规则以使用尾部斜杠结束

时间:2014-10-08 14:14:08

标签: .htaccess rewrite

所以我有以下网址重写规则;

RewriteCond %{THE_REQUEST} ^([A-Z]{3,9})\ (.*)/index.php[^\ ]*\ HTTP
RewriteRule ^index\.php$ %2/ [R=301,L]
RewriteRule ^f([0-9]+)-[^_]+?\.html$ viewforum.php?f=$1
RewriteRule ^f([0-9]+)-[^_]+?_([0-9]+)\.html$ viewforum.php?f=$1&start=$2
RewriteRule ^t([0-9]+)-[^_]+?\.html$ viewtopic.php?t=$1
RewriteRule ^egosearch.html$ search.php?search_id=egosearch

他们将查询字符串更改为尾随.html的字符串。有人可以帮助我切换这些,所以他们只显示一个尾随斜线?

当前的URL看起来像这样:

/f2-general-auto-assistance.html
/t1-welcome-to-phpbb3.html
/faq.html

此外,我想了解有关使用重写规则的更多信息。所以如果你愿意分享一个参考网址以便学习更多知识,那么我将来可以做到这一点 - 这将是非常好的。

1 个答案:

答案 0 :(得分:0)

通过将最后.html部分设为可选并允许使用尾部斜杠来制定这样的规则:

RewriteCond %{THE_REQUEST} ^([A-Z]{3,9})\ (.*)/index.php[^\ ]*\ HTTP
RewriteRule ^index\.php$ %2/ [R=301,L]

RewriteRule ^f([0-9]+)-[^_]+?(/|\.html)$ viewforum.php?f=$1 [L,QSA]

RewriteRule ^f([0-9]+)-[^_]+?_([0-9]+)(/|\.html)$ viewforum.php?f=$1&start=$2 [L,QSA]

RewriteRule ^t([0-9]+)-[^_]+?(/|\.html)$ viewtopic.php?t=$1 [L,QSA]

RewriteRule ^egosearch(/|\.html)$ search.php?search_id=egosearch [L,QSA]