我有一个拥有大量域别名的客户端,并希望将它们全部重定向到站点上的一个主域。他们还想知道哪个域别名正在执行重定向。我已经完成了那部分,但我想将代码优化为最好的最合适的方式,并消除我必须编写的代码量。我想知道是否有办法将使用的域别名传递给 RewriteRule url。
这就是我现在所拥有的。我正在寻找被命中的域别名,然后将该别名传递给 url。然后在谷歌分析中,我可以看到该网址被用于点击页面的次数。
RewriteCond %{HTTP_HOST} ^(www\.)?domain-alias1\.com [NC]
RewriteRule ^(.*) http://www.main-domain.com/?domain-alias1\.com$1 [R=301,L}
但我的目标是不必为每个域别名都编写条件和规则。
有没有办法查看哪个别名被命中,然后重写规则自动将它添加到我指定的位置?
我最初尝试过这样的事情只是为了看看它是否有效(尽管我尝试了很多不同的方法):
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z]+)\.com [NC]
RewriteRule ^(.*) http://www.main-domain.com/?$1\.com$2 [R=301,L]
最佳答案
您可以尝试以下方法:
RewriteCond %{HTTP_HOST} !^(www\.)?main-domain\.com$ [NC]
RewriteRule ^(.*) http://www.main-domain.com/$1?domain=%{HTTP_HOST} [R=301,L]
有了这个任何请求 不是 对于域
www.main-domain.com
将被重定向到 www.main-domain.com
查询字符串中的域名 domain
.
关于.htaccess 重定向域别名',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901079/