我有一个包含不同部分的网站 mysite.com。有多个域名指向同一个网站。我想要实现的是。
假设我的网站有域名 mysite.com、section1.com 和 section2.com。
如果用户来自 section1.com,则用户应该获取 mysite.com/section1/,它不应该被重定向,而应该像这样重写:
- mysite.com/section1/something 应该变成 section1.com/something
- mysite.com/section1/another 应变为 section1.com/another
同样,如果用户来自 section2.com,则提供的内容应为 mysite.com/section2/,域名应重写为
- mysite.com/section2/something 应该变成 section2.com/something
- mysite.com/section2/another 应变为 section2.com/another
答案1
这看起来像是 mod_rewrite 的一个案例。
像这样的事情应该可以解决问题:
RewriteEngine 开启 重写规则 ^(.+) %{HTTP_HOST}$1 [C] 重写规则 ^([^.]+\.com)(/.*) http://mysite.com/$1$2 [P]
您需要同时启用 mod_rewrite 和 mod_proxy ( a2enmod rewrite && a2enmod proxy
) 才能使其正常工作。
值得注意的是,如果请求是为了http://www.section2.com/foo这不起作用。如果你想考虑子域名(并删除它们),你应该使用第二个RewriteRule
:
重写规则 ^([^/]*\.)?([^.]+\.com)(/.*) http://mysite.com/$2$3 [P]