2012-05-22 1 views
1

Помощь от гуру оценена.эксперты htaccess: перенаправить все, кроме root, на один TLD, перенаправить корень на другой TLD - WordPress

Мне было предложено разместить домашнюю страницу клиента WordPress на одном TLD (то есть domain.eu) и иметь все остальные страницы/каталоги на другом домене (например, domain.com/everything-else) , Не уверен, почему это запрашивается, но, видимо, это важно для клиента, и я ударяю головой, чтобы заставить его работать. Есть идеи?

Примеры:

Если URL попадает корни любого домена TLD, они должны быть перенаправлены на домен .eu (http://domain.eu/), но все остальное должно идти на .com домен (http://domain.com/)

Корни:

http://domain.com OR 
http://domain.net OR 
http://domain.edu/index.php OR 
http://domain.org/index.html OR 
http://domain.* (* = any extension) 

301:http://domain.eu

Однако все остальное должно поддерживать структуру каталогов и перенаправляться на другой TLD (http://domain.com). Примеры ..

От:

http://domain.net/blog/category 

301:

http://domain.com/blog/category 

От:

http://domain.org/blog/category/post 

301 К:

http://domain.com/blog/category/post 

Все, что я пытался оседают в переадресованных петель или только частично. Например, ниже указано выше перенаправления WordPress, и оно перенаправляется правильно в том смысле, что все целевые URL попадают, но корень (домашняя страница) имеет ошибку цикла перенаправления. Есть предположения?

RewriteEngine On 
RewriteBase/
Options +FollowSymLinks 

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RedirectMatch ^/$ http://domain.eu 

RewriteCond %{REQUEST_URI} !^/$ [NC] 
RewriteCond %{HTTP_HOST} ^domain.com.au$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^domain.eu$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^domain.de$ [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L] 

Я немного новичок с Htaccess, поэтому дайте мне знать, как я буду об этом неправильно, спасибо!

ответ

0

попытайтесь заменить redirectmatch следующим.

RewriteCond %{HTTP_HOST} !^domain.eu$ [NC] 
RewriteRule ^/?$ http://domain.eu/ [R=301,L] 
+0

Отлично, спасибо вам за помощь! –

+0

Добро пожаловать. RedirectMatch принадлежит mod_alias, а не mod_rewite. Смешивание двух может иногда вызвать проблемы, поэтому лучше избегать этого. – Gerben

0

WordPress перенаправляет любые URL-адреса, не соответствующие домену в конфигурации WordPress. Вам нужно будет написать плагин WP или использовать прокси-сервер, чтобы захватить главную страницу для другого домена.