Моя цель - указать:
http://xyz.domain.com/abc
до http://www.domain.com/dir/file.php?var=xyz
(Другими словами, что-либо с http://_____.domain.com/abc
будет читать из http://www.domain.com/dir/file.php?var=_____
.)
Я использовал это в своем файле .htaccess в корне сайта (http://www.domain.com/.htaccess):
RewriteCond %{HTTP_HOST} !^www.domain.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule ^abc/*$ dir/file.php?var=%2 [NC,L]
Работало, но затем автоматически перенаправлялось на http://xyz.domain.com/abc/?var=xyz
, когда я просто хотел http://xyz.domain.com/abc
без отображения строки запроса.
Я рассмотрел добавление строки %{QUERY_STRING}
к приведенному выше, но застрял при попытке сопоставить два var
RewriteCond друг с другом.
Тогда я нашел это в http://www.askapache.com/htaccess/modrewrite-tips-tricks.html#Removing_Query_String
RewriteCond %{THE_REQUEST} ^GET\ /.*\;.*\ HTTP/
RewriteCond %{QUERY_STRING} !^$
RewriteRule .* http://www.askapache.com%{REQUEST_URI}? [R=301,L]
... какой, мне кажется, правильный код, чтобы избавиться от чего-то подобного в обычном домене? Я попытался сделать его подходящим для подстановочных доменов, изменив его на следующее:
RewriteCond %{THE_REQUEST} ^GET\ /.*\;.*\ HTTP/
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{HTTP_HOST} !^www.domain.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com[NC]
RewriteRule .* http://%2.domain.com%{REQUEST_URI}? [R=301,L]
Но это не работает. ТАК ... кто-нибудь может помочь?