![使用 htaccess 根据域名提供页面](https://linux22.com/image/795209/%E4%BD%BF%E7%94%A8%20htaccess%20%E6%A0%B9%E6%8D%AE%E5%9F%9F%E5%90%8D%E6%8F%90%E4%BE%9B%E9%A1%B5%E9%9D%A2.png)
我有一个包含不同部分的网站 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]