2014-10-08 231 views
0

所以我有以下url重写规则;改变重写规则以结尾斜杠结束

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的字符串。有人可以帮我转换这些,所以他们只显示一个尾部的斜线?

目前的网址看起来是这样的:

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

此外,我想了解更多关于使用重写规则。所以如果你想分享一个参考网址以便学习更多,那么我可以在将来自己做这件事 - 那会很棒。

+0

这是规则'重写规则^指数\ $ .PHP%2/[R = 301,L]'工作? – anubhava 2014-10-08 14:15:39

+0

是的,它看起来工作得很好。为什么,它写错了? – 2014-10-08 14:16:58

+0

'%2'在这里始终是空的。 – anubhava 2014-10-08 14:17:27

回答

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]