Эксперты HTACCESS: перенаправьте все, кроме как root до одного TLD, перенаправить рут в другой TLD - WordPress

StackOverflow https://stackoverflow.com//questions/10695777

Вопрос

Помощь от гуру ценится.

Мне было предложено поставить домашнюю страницу WordPress клиента на один TLD (i.e. domain.eu), и у всех других страниц / каталогов будет 301 года к другому расширению TLD (i.e. 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, так что дайте мне знать, как я иду через это неправильно, спасибо!

Это было полезно?

Решение

Попробуйте заменить перенаправить совместно со следующим.

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top