На моем сайте я хотел бы, чтобы перенаправлять посетитель, которые говорят на итальянском (их языке браузер итальянский) к/это/и все другим языкам/ан/Htaccess определение языка эффективный код
я придумал следующий код:
#redirect to /it for italian lang
RewriteCond %{HTTP_HOST} ^domain\.net$ [NC]
RewriteCond %{REQUEST_URI} !/it/ [NC] #doesn't have /it in the url already
RewriteCond %{REQUEST_URI} !/en/ [NC] #doesn't have /en in the url already
RewriteCond %{REQUEST_URI} !/admin/ [NC] #we are not in the admin panel
RewriteCond %{HTTP:Accept-Language} ^it [NC] #browser language is italian
RewriteRule ^(.*)$ http://domain.net/it/$1 [L,R=301]
#redirect to /en for all other langs
RewriteCond %{HTTP_HOST} ^domain\.net$ [NC]
RewriteCond %{REQUEST_URI} !/it/ [NC] #doesn't have /it in the url already
RewriteCond %{REQUEST_URI} !/en/ [NC] #doesn't have /en in the url already
RewriteCond %{REQUEST_URI} !/admin/ [NC] #we are not in the admin panel
RewriteRule ^(.*)$ http://domain.net/en/$1 [L,R=301]
Таким образом, все условия проверяются, и если язык итальянский они получают редирект/она в противном случае второй блок ввести в действие, и они получают перенаправлены на английскую версию.
Мой первый вопрос: есть более эффективный способ сделать это? мои возможности htaccess очень ограничены.
в качестве дополнительного вопроса: может ли это создать проблему с SEO? Я думаю, что все боты, которые сканируют domain.net, будут перенаправлены на английскую версию, а затем найдут ссылку (это изображение флага) на итальянскую версию и сканирование итальянской версии. это правильно?
Большое спасибо, вы разъяснили это для меня и сделали код намного чище –