3

我制作了自动创建子域的脚本。

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},如何使用 htaccess 获取/匹配当前 url 中的当前域?

可能需要将域名作为变量

谢谢

4

2 回答 2

3

我相信这RewriteCond应该对你有用:

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

所以对于前; 使用类似的 URLhttp://www.sub.domain.comsub%1变量和变量domain.com中捕获%2

于 2013-10-17T13:43:05.320 回答
0

除了 anubhava 的答案,如果您需要在 in 之后捕获其余的 url domain.com%3您可以使用以下内容RewriteCond

RewriteCond %{HTTP_HOST} ^(?:www\.)?((?!www\.)[^.]+\.)?([^/.]+\.[^/.]+)/?([^/]+)?$ [NC]
于 2013-11-12T06:52:14.690 回答