Для языковых перенаправлений в настоящее время мы создаем в корневом веб-каталоге папки, содержащие файл index.php, который проверяет серверную переменную HTTP_ACCEPT_LANGUAGE
. например для URL www.example.com/press/
в /var/www/site/press/index.php
:
<?php
if ($_SERVER["HTTP_ACCEPT_LANGUAGE"] == "en")
header("location: ../press_en.php");
else
header("location: ../press_de.php");
?>
По мере роста сайта у нас появилось много таких папок. Я пытаюсь это исправить, переместив перенаправления в один файл .htaccess:
RewriteEngine on
# Set the base path here
RewriteBase /path/to/site/
# The 'Accept-Language' header starts with 'en'
RewriteCond %{HTTP:Accept-Language} (^en) [NC]
# EN redirects
RewriteRule press(/?)$ press_en.php [L,R]
# DE redirects (for all languages not EN)
RewriteRule press(/?)$ press_de.php [L,R]
Идея такая же, как у файла php, но она не работает. Я перепробовал все возможные языковые настройки / порядки в настройках Firefox и проверил правильность заголовков, но он всегда обслуживает файл press_de.php
.
Что я делаю не так, или есть лучший способ? (не включая согласование содержимого / многовидовые просмотры или все, что требует переименования файлов, в настоящее время это не вариант) .