我们与供应商存在合规性问题,就好像您输入的网址大小错误,其品牌错误。我们在私有的apache服务器上,所以可以根据需要编辑htaccess等。
网址为/ example / Brand-Name 我们希望以下所有变体解析回/ example / Brand-Name /(作为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 :(得分: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,则执行重写规则。尝试这些调整并告诉我。如果这不起作用,我会为你做一些研究。
编辑:一个快速搜索,我看到很多重写看起来像这样 - !^ / - 所以也许你需要在你之后添加一个小屋顶^人。我相信重写这表示在哪里匹配,也应该在第二行。
答案 1 :(得分: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]