.htaccess перенаправить домен без языковой подпапки в языковую подпапку - PullRequest
0 голосов
/ 02 мая 2018

У меня есть домен, подобный этому "domain.com", теперь я создаю подпапки для языков. Теперь у моего домена есть эти подпапки «domain.it/it/» и «domain.com/en/». Мне нужно перенаправить только корневой домен «domain.it» на «domain.com/it/», я пытался сделать это в моем .htaccess, но в «Слишком много перенаправлений»:

RewriteCond %{HTTP_HOST} ^(www\.)?domain.it$ [NC]
RewriteRule ^(.*) https://www.domain.it/it/ [R=301,L]

А это:

RewriteCond %{REQUEST_URI} !^/(en|it)/
RewriteRule ^(.*)$ https://www.domain.it/it/ [L,R=301]

Как я могу это сделать? Спасибо

1 Ответ

0 голосов
/ 12 мая 2018

Первое правило + условие всегда совпадают, поэтому возникает бесконечный цикл. Вам нужно только одно правило для этой ситуации:

RewriteRule ^(?!(?:it|en)/).* https://www.domain.it/it/$0 [L,R=301]

При этом используется отрицательное прогнозное утверждение с необработанным подшаблоном. Тем не менее, я бы посоветовал вам также добавить еще одно правило ( до этого правила), чтобы помочь вводить / плохо копировать URL-адреса вручную:

RewriteRule ^(?:it|en)$ https://www.domain.it/$0/ [L,R=301]
...