Префикс перенаправления htaccess в домен - PullRequest
0 голосов
/ 06 декабря 2018

Я сделал сайт с 2 языками.У меня есть определенный домен для каждого.Я купил их, и они указывают на один и тот же каталог (поэтому они отображают один и тот же сайт).

Я бы хотел перенаправить каждый язык в его конкретный домен.

Я пробовал это:

RewriteRule ^fr/(.*)$ https://www.french-domain.com/fr/$1 [L,R=301]

RewriteRule ^en/(.*)$ https://www.english-domain.com/en/$1 [L,R=301]

Но это создает ошибку в цикле.

У кого-нибудь есть идея?Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Вы не используете правильные правила для перенаправления ваших доменов.Ваши правила только перенаправляют URL-путь, начиная с fr и en, то есть: example.com/fr.Чтобы перенаправить домены в определенные папки, сначала нужно проверить заголовок HTTP_HOST, а затем перенаправить этот хост в папку.

Используйте следующее правило в каталоге / .htaccess, на который указывают ваши домены:

RewriteEngine on

# map fr-example.com to /fr-folder
RewriteCond %{HTTP_HOST} ^(www\.)?fr-example\.com$ [NC]
RewriteRule ^.*$ /fr-folder%{REQUEST_URI} [L]
# map eng-example.com to /eng-folder
RewriteCond %{HTTP_HOST} ^(www\.)?eng-example\.com$ [NC]
RewriteRule ^.*$ /eng-folder%{REQUEST_URI} [L]
0 голосов
/ 06 декабря 2018

вы всегда ищете шаблон, который существует как в старом URL, так и в новом URL, и так как они все указывают на одну и ту же папку ... вы входите в бесконечный цикл.

, если у вас есть 2домены, так что вы можете проверить по самому домену,

вот так:

HTTP_HOST fr.french-domain.com/(.*)
RewriteRule ^fr.french-domain.com/(.*)$ https://www.french-domain.com/fr/$1 [L,R=301]

Я не совсем понимаю, как выглядят домены, и перенаправить на что, так что, возможно, вы будетенужно немного его изменить.

но попробуйте это и обновите, если это работает для вас,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...