apachemod-rewriteurl-rewritingmod-proxyproxypass

How can I set the RewriteCond for the exact URL only?


I need to make a hidden redirect from sitename.dom to sitename.dom2 keeping the rest of string untouched.

For now I use:

RewriteCond %{HTTP_HOST} ^sitename.dom
RewriteRule ^(.*) http://sitename.dom2/$1 [P]

and it works perfectly. But. Due to multilanguage on my website the frontpage has the following path:

sitename.dom2/lang 

thats why when user calls sitename.dom he is being redirected (hidden) to sitename.dom2/ and he's getting 404 page.

So, please advise how do I make a strict redirect for exact request only sitename.dom without any further?

I had tried

RewriteCond %{HTTP_HOST} ^sitename\.dom$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*) http://sitename.dom2\/lang [P]

with no luck.

BTW, inside the website language subpath doesn't affect at all. sitename.dom/lang/page works as good as sitename.dom/page


Solution

  • I had to add the single redirect before all other. And use dom2 instead of dom1 in this rule.

    Here is the solution:

    RewriteEngine On
    
    #redirect front page only:
    RewriteCond %{HTTP_HOST} ^sitename\.dom2$ [OR]
    RewriteCond %{HTTP_HOST} ^www\.sitename\.dom2$
    RewriteRule ^/?$ "http\:\/\/sitename\.dom2/\lang" [L]
    
    #redirect all other pages:
    RewriteCond %{HTTP_HOST} ^sitename\.dom2
    RewriteRule ^(.*) http://sitename\.dom1\/$1 [P]