我做了自动创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]