Перенаправить www.domain.com/uk на www.domain.co.uk/uk - PullRequest
2 голосов
/ 02 июня 2011

Я не .htaccess эксперт, но я пробовал несколько разных способов перенаправить домен безрезультатно.

У меня есть домен в Великобритании и США ... некоторые страницы в США имеют расширение Великобритании, и их нужно указать на соответствующий домен в Великобритании:

www.domain.com/uk необходимо переписать в www.domain.co.uk/uk

Ex. Если кто-то введет www.domain.com/uk/about, он будет переписан как www.domain.co.uk/uk/about

Редактировать : пути с /uk должны быть переписаны

Так что www.domain.com/uk и www.domain.co.uk следует переписать в www.domain.co.uk/uk/

1 Ответ

2 голосов
/ 02 июня 2011

Вы можете попробовать что-то вроде этого:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule (.*) http://www.domain.co.uk/$1 [L,R=301]

Важным моментом является использование тега RewriteCond, который работает с заголовком HTTP-хоста.Проще говоря, если RewriteCond ставится перед нормальным RewriteRule, то правило используется только в том случае, если условие соответствует.

Приведенный выше фрагмент кода перенаправляет все запросы с .COM на .CO.UK domain, так что если вам нужно только перенаправить определенный каталог, то вам необходимо соответствующим образом изменить правило, например:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteRule uk(.*) http://www.domain.co.uk/uk$1 [L,R=301]

Редактировать: Я надеюсь, что это будет работать для вас согласно

Первое правило переписывает http://www.domain.com/uk и http://www.domain.com/uk/anything в http://www.domain.co.uk/uk/anything.

Второе правило переписывает http://www.domain.co.uk в http://www.domain.co.uk/uk/.

Редактировать 2: Я изменил правило (изменил последнее и добавил другое), чтобы отразить потребность в переписываниях на .co.uk/something.Если путь начинается с uk/, он просто проходит, в противном случае он переписывается на uk/something.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule uk($|/.*) http://www.domain.co.uk/uk$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
RewriteRule ^uk/(.*) - [PT,L]
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
RewriteRule (.*) http://www.domain.co.uk/uk/$1 [L,R=301]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...