4

我有一个具有大量域别名的客户端,并希望将它们全部重定向到站点上的一个主域。他们还想知道哪个域别名正在执行重定向。我已经把那部分写下来了,但我想将代码优化到最好的最合适的方式,并消除我必须编写的代码量。我想知道是否有办法将使用的域别名传递给 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]
4

1 回答 1

4

您可以尝试以下方法:

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

于 2011-05-05T18:16:39.820 回答