У меня есть два правила в моем файле .htaccess для перезаписи URL:
для перезаписи поддомена: xxx.domain.com внутренне перенаправляется на 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 будет перенаправлен на другой файл.php? item1 = xxx & item2 = yyy
какие идеи будут работать, или как это правильно?
Возможно, вы близки, но HTTP_HOST содержит только имя хоста (я думаю), а не URI, который находится в REQUEST_URI. Объединение этих двух вещей должно дать вам то, что вы хотите:
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^.....$