htaccess自动检测域名

我做了自动创build子域的脚本。

htaccess工作正常,但问题是, 我需要手动更改域名时安装在新的域名

我想在htaccess中自动检测域名,这可能吗?

所以当添加到另一个服务器或新域时, 不需要再次更改域根htaccess

域根htaccess是:

RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9][-a-z0-9]+)\.mydomain\.com(:80)?$ [NC] RewriteCond %{HTTP_HOST} !^www\.mydomain\.com 

我尝试改变自动从%{HTTP_HOST}

 RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9][-a-z0-9]+)\.%{HTTP_HOST}(:80)?$ [NC] RewriteCond %{HTTP_HOST} !^www\.%{HTTP_HOST} 

问题是%{HTTP_HOST} ,如何获取/匹配当前url与当前url与htaccess?

也许需要获取域名作为variables

谢谢

我相信这个RewriteCond应该为你工作:

 RewriteCond %{HTTP_HOST} ^(?:www\.)?((?!www\.)[^.]+)\.([^.]+\.[^.]+)$ [NC] 

因此,前者; 使用像http://www.sub.domain.com这样的URL,它将捕获%1变量中的sub%2变量中的domain.com

除了anubhava的回答,如果你需要在%3 domain.com之后捕获其余的url,你可以使用下面的RewriteCond

 RewriteCond %{HTTP_HOST} ^(?:www\.)?((?!www\.)[^.]+\.)?([^/.]+\.[^/.]+)/?([^/]+)?$ [NC]