我有我的.htaccess文件URL重写两个规则:
对于子域重写: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} ^.....$