i have two rules in my .htaccess file for url rewriting:

  1. for subdomain rewriting: xxx.domain.com is internally redirected to 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.ordinary rewriting:

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

What i need to achieve is writing a third rule that will combine these two rules without being in conflict with them. Namely, below (or above) this lines i need to have something like that

RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain\.com/([A-Za-z0-9_)(:!-',]+)$ [NC]

RewriteRule ^$ /anotherfile.php?item1=%2&item2=$1 [QSA,nc]

so that http://xxx.domain.com/yyy will be redirected to anotherfile.php?item1=xxx&item2=yyy

any ideas that will work, or what is the correct way of it?


You may be close, but HTTP_HOST only contains the hostname (I think), not the URI, which is in REQUEST_URI. Combining the two should give you what you want:

RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^.....$
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy