如何在一个htaccess文件中支持多个域?

时间:2016-12-31 14:53:06

标签: apache .htaccess mod-rewrite

我在托管环境中无法直接修改Apache conf文件,因此我依赖于htaccess文件。

我有一个public_html目录,我想设置它以便我可以拥有如下的子目录,这样当访问者在他们的浏览器中访问alpha.com时,他们从该目录中获取内容,依此类推: / p>

public_html/alpha.com   # Used when visitors access alpha.com
public_html/bravo.com   # Used when visitors access bravo.com
public_html/charlie.com # Used when visitors access charlie.com

如何使用public_html根目录中的htaccess文件执行此操作?

我不想使用任何类型的客户端重定向。我想在服务器端映射这些。

1 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?alpha\.com [NC]
RewriteRule ^((?!alpha\.com/).*)$ /alpha.com/$1 [NC,L]

RewriteCond %{HTTP_HOST} ^(www\.)?bravo\.com [NC]
RewriteRule ^((?!bravo\.com/).*)$ /bravo.com/$1 [NC,L]

RewriteCond %{HTTP_HOST} ^(www\.)?charlie\.com [NC]
RewriteRule ^((?!charlie\.com/).*)$ /charlie.com/$1 [NC,L]

或者,如果您始终对目录使用相同的名称,则可以使用:

RewriteCond %{HTTP_HOST} ^(?:www\.)?((?:alpha|bravo|charlie).com) [NC]
RewriteCond %1::%{REQUEST_URI} !^(.*?)::/\1/?
RewriteRule ^(.*)$ /%1/$1 [NC,L]