我正在努力让重写工作,需要一只手......
我有一组网站,这些网域就是这样的
example.com
example.co.uk
example.ie
example.com/gm
网站的设置方式意味着所有域都可以显示.com / gm内容(GM没有自己的域名,我们希望它只能从.com域名提供)
因此,我尝试使用 gm 子文件夹将使用错误网址的任何人重定向到正确的TLD。 E.G:
going to www.example.co.uk/gm would 301 to www.example.com/gm
我现在有这个:
RewriteCond %!{HTTP_HOST}:{REQUEST_URI} !^example.com:gm$ [L,R]
RewriteRule ^(.*)$ https://www.example.com/gm$1 [R=301,L]
哪个显然不开心
在正确的方向上欣赏一点,基本上从我可以告诉我需要一个规则来检查域名不等于.com如果他们试图转到/ gm /并将它们重定向到.com / gm /
谢谢!
答案 0 :(得分:2)
更容易检查RewriteRule中是否请求了/gm/
路径,并使用RewriteCond前缀检查主机名 - 这样的事情应该这样做:
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^(gm/.*)$ https://www.example.com/$1 [R=301,L]
答案 1 :(得分:0)
你的htaccess充满了语法错误。
尝试以下方法:
RewriteCond %{HTTP_HOST} ^(www\.)?example.co.uk$
RewriteCond %{REQUEST_URI} ^/gm/
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
这将重定向
到
在测试之前清除浏览器的缓存。