2013-10-03 45 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,则重写规则。尝试这些调整,让我知道。如果这不起作用,我会为你做一些研究。

编辑:快速搜索,我看到很多重写看起来像这样 - !^/- 所以也许你需要在你的后面添加小屋顶!我认为重写这表示乞讨哪里匹配,也应该在第二行。

相关问题