2013-10-03 78 views
1

我們與供應商存在合規問題,就好像您輸入的URL不正確,大寫字母的品牌錯誤。我們在一個私人的Apache服務器上,所以可以根據需要編輯htaccess等。將不同大小寫的URL重定向到基地

的網址/例子/名牌 我們希望下面所有的變來解決回/例子/名牌/(如301重定向)

/example/BRAND-NAME/ 
/example/brand-name/ 
/example/Brand-name/ 
/example/brand-Name/ 

等等等等

我嘗試過的所有htaccess事件都會導致無限循環。

RewriteCond %{HTTP_HOST} /example/Brand-Name/$ [NC] 
RewriteCond %{HTTP_HOST} !/example/Brand-Name/ 
RewriteRule ^(.*)$ /example/Brand-Name/$ [R=301,L] 

回答

0

不知道你是如何得到規則工作的,因爲你的%{HTTP_HOST} var永遠不會看起來像/example/Brand-Name/。您可能想要:

RewriteCond %{REQUEST_URI} !^/example/Brand-Name/ 
RewriteCond %{REQUEST_URI} ^/example/brand-name/ [NC] 
RewriteRule ^example/brand-name/(.*)$ /example/Brand-Name/$1 [L,NC,R=301] 
1

您是否嘗試過以下兩件事情?您的NoCase聲明僅作爲品牌名稱(不完全拼寫爲您的正確版本)以及切換規則的順序。

RewriteCond %{HTTP_HOST} !^/example/Brand-Name/ 
RewriteCond %{HTTP_HOST} ^/example/brand-name/$ [NC] 
RewriteRule ^(.*)$ /example/Brand-Name/$ [R=301,L] 

我相信這樣工作的方式就像一個IF中的AND語句。如果Line1和Line2,則重寫規則。嘗試這些調整,讓我知道。如果這不起作用,我會爲你做一些研究。

編輯:快速搜索,我看到很多重寫看起來像這樣 - !^/- 所以也許你需要在你的後面添加小屋頂!我認爲重寫這表示乞討哪裏匹配,也應該在第二行。

相關問題