Forum Moderators: phranque

Message Too Old, No Replies

Rewrite to different dirs for different top level domains

domain.com routed to /folder1, domain.net routed to /folder2

         

beerhunter

9:46 pm on Feb 24, 2005 (gmt 0)

10+ Year Member



Hi gang. Although I've found many answers here before, this is my first post the forum.

I have domain pointers routed to different directories using Rewrite rules:

Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.domain.*
RewriteCond %{REQUEST_URI}!/folder/
RewriteRule ^(.*)$ /folder/$1
RewriteCond %{HTTP_HOST} ^domain.*
RewriteCond %{REQUEST_URI}!/folder/
RewriteRule ^(.*)$ /folder/$1

This works great, especially since I can have a .net and .com domain pointer routed to the same content.

Here's my problem: I'm going to let one of the domains expire in a year. So I would like to have the .net domain route to a different folder with a META refresh page that says "...the .net domain will be expiring soon, so update your bookmarks to the .com domain..." How do tell Apache to point the two different URL requests to two seperate folders? I've tried and failed with the following examples:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.domain\.net$ [OR]
RewriteCond %{HTTP_HOST} ^domain\.net$
RewriteRule ^(.*)$ /folder1/$1 [L]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(.*)$ /folder2/$1

-{or}-

RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain.net$
RewriteRule ^(.*)$ /folder1/$1
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ /folder2/$1

None of these suckers works.
Please help! Many thanks in advance...

jdMorgan

3:23 pm on Feb 25, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



beerhunter,

Welcome to WebmasterWorld!

The main problem is apparently that you have removed the "infinite loop" protection. I'd recommend:


Options +FollowSymlinks
RewriteEngine On
RewriteBase /
#
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.net
RewriteCond %{REQUEST_URI} !^/folder1/
RewriteRule (.*) /folder1/$1 [L]
#
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com
RewriteCond %{REQUEST_URI} !^/folder2/
RewriteRule (.*) /folder2/$1 [L]
#
# Prevent direct folder1 or folder2 type-in or link access
RewriteCond %{THE_REQUEST} ^[A-Z]+\ (http://(www\.)?domain\.(com¦net)(:[0-9]+)?)/(folder1¦folder2)/(.*)\ HTTP
RewriteRule .* %1/%6 [R=301,L]

If the back-references in the additional code aren't clear, count the left parentheses to determine the assigned variable numbers.

Replace the broken pipe "¦" characters with solid pipes before use.

Jim

beerhunter

4:26 pm on Feb 28, 2005 (gmt 0)

10+ Year Member



OUTSTANDING!
Works like a charm :)

Jim, I owe you a beer!