htaccess帮忙!通配符子域重写规则到仅某些子域的特定文件夹

时间:2014-11-26 14:30:30

标签: .htaccess joomla

通过一些研究,我在我的开发目录中提出了一个htaccess重写规则,它将通配符子域带到我的开发文件夹中的匹配实例名称。我承认我对此知之甚少,所以真的需要帮助。所以当前的htaccess表现如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$
RewriteCond %{HTTP_HOST} ^(\w+)\.mydomain\.com$
RewriteCond %{REQUEST_URI}:%1 !^/([^/]+)/([^:]*):\1
RewriteRule ^(.*)$ /%1/$1 [QSA]

示例

instance_folder_name.mydomain.com

重定向到

public_html/development/instance_folder_name

这很有效,因为它允许我在开发目录中拥有开发网站,而且我不必经常为每个站点创建子域。

我遇到的问题是如何处理以下场景:

我使用虚拟域作为Joomla中的添加组件,以便通过一个Joomla安装来管理多个域。所以我可能有以下子域名......

client1.mydomain.com
client2.mydomain.com
client3.mydomain.com

所有人都需要去

/public_html/development/client1

我想我需要的是关于如何处理所有通配符子域的一般规则,但是例如client1,client2,client3的例外

1 个答案:

答案 0 :(得分:1)

您可以为这3个子域设置单独的规则,并在旧规则中添加排除条件:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(client1|client2|client3)\. [NC]
RewriteRule ^((?!client1/).*)$ /client1/$1 [L,NC]

RewriteCond %{HTTP_HOST} !^(client1|client2|client3)\. [NC]
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$
RewriteCond %{HTTP_HOST} ^(\w+)\.mydomain\.com$
RewriteCond %{REQUEST_URI}:%1 !^/([^/]+)/([^:]*):\1
RewriteRule ^(.*)$ /%1/$1 [L]