2014-10-08 82 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]