mod_rewrite: перезапись URL-адреса плюс перезапись поддомена (подстановочный знак) одновременно - PullRequest
1 голос
/ 30 января 2010

В моем файле .htaccess есть два правила для перезаписи URL:

  1. для перезаписи поддоменов: 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 был перенаправлен на другой файл_файла? Item1 = xxx & item2 = yyy

есть идеи, которые будут работать, или как это правильно?

1 Ответ

0 голосов
/ 31 января 2010

Попробуйте это правило:

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

Используются условия первого правила и шаблон URL-адреса второго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...