![Apache2 URL 重写 - 二级域名到 URL 末尾](https://linux22.com/image/796214/Apache2%20URL%20%E9%87%8D%E5%86%99%20-%20%E4%BA%8C%E7%BA%A7%E5%9F%9F%E5%90%8D%E5%88%B0%20URL%20%E6%9C%AB%E5%B0%BE.png)
我有一个网站“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 很好!