如何使mod_rewrite从子域redirect到查询string?

我想使mod重写为下面的例子:

从google.com.mydomain.com到mydomain.com/index.php?domain=google.com

我喜欢用

RewriteCond %{HTTP_HOST} !^www [NC] RewriteCond %{QUERY_STRING} !domain= RewriteCond %{HTTP_HOST} ^([^\.]+)\.mydomain.com$ [NC] RewriteRule ^(.*)$ /index.php?domain=%1 [L,QSA] 

但是将google.mydomain.comredirect到mydomain.com/index.php?domain=google

我想规则redirectgoogle.com不谷歌

谢谢

这是由于正确的正则表达式。 试试这个规则:

 RewriteCond %{HTTP_HOST} !^www [NC] RewriteCond %{QUERY_STRING} !domain= RewriteCond %{HTTP_HOST} ^(.+?)\.mydomain\.com$ [NC] RewriteRule ^(.*)$ /index.php?domain=%1 [L,QSA] 

在你的规则中,你使用[^\.]+匹配,直到找到一个点,因此它是匹配google而不是google.com