I am running Apache witha redirect rule like this:
RewriteCond %{HTTP_HOST} ^1st-domain\\.com
RewriteRule ^(.*)$ http://2nd-domain.com$1 [R=permanent,L]
I tried the options stated on this page, all I wanted was to check if the REQUEST_URI is empty (or in this particular case, a /
):
# Check of the request uri is just 1 char long (checking for a slash was harder):
RewriteCond %{REQUEST_URI} ^.$
Your rules redirects request with empty QUERY_STRING
.
For empty request_uri, you can use
RewriteCond %{HTTP_HOST} ^1st-domain\.com$
RewriteRule ^$ http://3rd-domain.com$1 [R=permanent,L]
RewriteCond %{HTTP_HOST} ^1st-domain\.com
RewriteRule ^(.*)$ http://2nd-domain.com$1 [R=permanent,L]
The first rule will first match <empty>
, then tests for <non-empty or empty>
(which can't be <empty>
now since we've processed it before)
If request is empty apache 'redirects' to index.html so -RewriteCond %{REQUEST_URI} index- might help you.
I am using the following to catch empty REQUEST_URL:
RewriteEngine on
RewriteCond %{REQUEST_URI} "^/$"
RewriteRule ^(.*) http://%{HTTP_HOST}/my/another/url
This should work:
RewriteCond %{HTTP_HOST} ^1st-domain\.com
RewriteRule ^(.*)$ http://2nd-domain.com$1 [R=permanent,L]
RedirectMatch ^/$ http://3rd-domain.com
This worked for me:
RewriteCond %{HTTP_HOST} ^(www\.)?1st-domain\.com$
RewriteCond %{REQUEST_URI} ^/$
RewriteRule .* http://3rd-domain.com/ [L,R=permanent]
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule .* http://2nd-domain.com%{REQUEST_URI} [L,R=permanent]
whitout the quotes on the empty validation