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



我处于无法直接修改 Apache conf 文件的托管环境中,所以我依赖 htaccess 文件。

我有一个public_html目录,我想对其进行设置,以便我可以拥有如下所示的子目录,以便当访问者在浏览器中访问 alpha.com 时,他们从该目录中获取内容,依此类推:

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 文件执行此操作?

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

您可以使用:

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]

最新更新