通过一些研究,我在我的开发目录中提出了一个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的例外
答案 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]