twixt
asked on
.htaccess rewrite/redirect problem (case is changing)
I have a website (Apache 1.3.37 on Linux) which has four domains pointed to it (olddomain1.com, olddomain2.com, olddomain3.com and newdomain.com). I am trying to modify the .htaccess file so that whenever someone browses to it using the old domain names they are (permanently) redirected to the same page but using the new domain name.
For example when someone requests
http://www.olddomain2.com/Cust/Index.html
they should be redirected (permanently) to
http://www.newdomain.com/Cust/Index.html
This is what I have in the .htaccess file:
Options All -Indexes +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.olddomain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain3\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain3\.com$ [NC,OR]
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
My problem is, when I browse to a web page the domain name replacement happens but the path and file name of the page is transformed into lowercase. Naturally this doesn't work as the web server is case sensitive.
For example, when I browse to:
http://www.olddomain2.com/Cust/Index.html
I receive:
http://www.newdomain.com/cust/index.html
Could someone please help me to correct the .htaccess file so that I have permanent redirections from the old domain names but preserves the case of the path and filename of the web pages so that they display?
Thank you for your time.
For example when someone requests
http://www.olddomain2.com/Cust/Index.html
they should be redirected (permanently) to
http://www.newdomain.com/Cust/Index.html
This is what I have in the .htaccess file:
Options All -Indexes +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.olddomain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain3\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain3\.com$ [NC,OR]
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
My problem is, when I browse to a web page the domain name replacement happens but the path and file name of the page is transformed into lowercase. Naturally this doesn't work as the web server is case sensitive.
For example, when I browse to:
http://www.olddomain2.com/Cust/Index.html
I receive:
http://www.newdomain.com/cust/index.html
Could someone please help me to correct the .htaccess file so that I have permanent redirections from the old domain names but preserves the case of the path and filename of the web pages so that they display?
Thank you for your time.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I don't see anything in your code that would cause this. I am using almost the same code for my site, and it keeps the Capitalization when redirecting.
ASKER
Thanks for your time. I found an answer in another forum. The last RewriteCond must not have an [OR] at the end. Now it seems to work. Why it should affect the capitalisation I have no idea.
Someone did alert me to an Apache bug that sounds similar but the bug report says that that bug is only on Windows systems and has been fixed in Apache 2. (http://issues.apache.org/bugzilla/show_bug.cgi?id=23460)
Thanks
Someone did alert me to an Apache bug that sounds similar but the bug report says that that bug is only on Windows systems and has been fixed in Apache 2. (http://issues.apache.org/bugzilla/show_bug.cgi?id=23460)
Thanks
ASKER
>>I found an answer in another forum.
If you are interested: http://www.webmasterworld.com/apache/3293896.htm
If you are interested: http://www.webmasterworld.com/apache/3293896.htm
ASKER