使用 htaccess 根据域名提供页面

使用 htaccess 根据域名提供页面

我有一个包含不同部分的网站 mysite.com。有多个域名指向同一个网站。我想要实现的是。

假设我的网站有域名 mysite.com、section1.com 和 section2.com。

如果用户来自 section1.com,则用户应该获取 mysite.com/section1/,它不应该被重定向,而应该像这样重写:

  1. mysite.com/section1/something 应该变成 section1.com/something
  2. mysite.com/section1/another 应变为 section1.com/another

同样,如果用户来自 section2.com,则提供的内容应为 mysite.com/section2/,域名应重写为

  1. mysite.com/section2/something 应该变成 section2.com/something
  2. 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]

相关内容