mod_rewrite:url重写加子域(通配符)同时重写

我有我的.htaccess文件URL重写两个规则:

  1. 对于子域重写:xxx.domain.com被内部redirect到file.php?item = xxx

    RewriteCond%{HTTP_HOST}!^ www.domain.com $ [NC]

    RewriteCond%{HTTP_HOST} ^(www。)?([^。] +)。domain.com $ [NC]

    RewriteRule ^ $ /file.php?item=%2 [QSA,nc]

    2.一般重写:

    RewriteRule ^([A-Za-z0-9 _)(:! – ',] +)/?$ file.php?item = $ 1 [L]

我需要做的是编写第三条规则,将这两条规则结合起来而不与它们发生冲突。 也就是说,在这条线的下面(或上面)我需要有这样的东西

RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain\.com/([A-Za-z0-9_)(:!-',]+)$ [NC] RewriteRule ^$ /anotherfile.php?item1=%2&item2=$1 [QSA,nc] 

这样http://xxx.domain.com/yyy将被redirect到anotherfile.php?item1 = xxx&item2 = yyy

任何想法,将工作,或者是什么正确的方式呢?

您可能会很近,但HTTP_HOST只包含主机名(我认为),而不包含REQUEST_URI中的URI。 结合这两个应该给你你想要的:

 RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^.....$