Apache2 URL 重写 - 二级域名到 URL 末尾

Apache2 URL 重写 - 二级域名到 URL 末尾

我有一个网站“example.com”以及许多其他域名,例如“example1.com”、“example2.de”等。

我希望每个二级域都按以下方式重写:

example.com/domainredirect=example1.com(当您打开 example1.com 时)和 example.com/domainredirect=example2.de(当您打开 example2.de 时)

因此原来的二级域名应该在“example.com/domainredirect=”后重写

提前致谢

答案1

RewriteCond %{HTTP_HOST} ^(www\.)?example(2|3|4).(com|de|net|org)$
RewriteRule (.*) http://example.com/domainredirect=%{HTTP_HOST} [R=301,L]

上述规则的作用是检查 () 内所有内容的条件,如果匹配,则将其重定向到您指定的域。

例如,如果 Web 服务器收到以下请求:

http://www.example2.org->http://example.com/domainredirect=www.example2.org

该规则具有一定的灵活性,因为它可以适用于 www 和基本域。

希望这能有所帮助。我还没有测试过,也没有从头开始写,但我很确定我已经修复了所有语法问题。

要从重写中排除某个域,只需执行以下操作:

要从重写规则中排除,只需删除(com)部分,或者您可以添加这样的附加条件......

RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$
RewriteCond %{HTTP_HOST} ^(www\.)?example(2|3|4).(com|de|net|org)$
RewriteRule (.*) http://example.com/domainredirect=%{HTTP_HOST} [R=301,L]

这应该可以解决问题...抱歉这么晚才回复,我的 PTO 很好!

相关内容