Перенаправить параметр языка по умолчанию в root с помощью htaccessPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Перенаправить параметр языка по умолчанию в root с помощью htaccess

Сообщение Anonymous »

Я искал решение, но нашел только один подобный случай без ответа (к сожалению). Хотя реализация работает, мне все еще не хватает одного важного аспекта.
Я запускаю простой сайт (один php-файл), который загружает контент на основе выбранного языка и страницы. Чтобы URL-адреса были оптимизированы для SEO, я использую следующий файл .htaccess:

Код: Выделить всё

RewriteEngine On
Options +FollowSymlinks

# 1. Redirect HTTP to HTTPS automatically (only if not in localhost)
RewriteCond %{HTTP_HOST} !=localhost
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# 2. Add a slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^./]+)$ $1/

# 3. Default homepage
RewriteRule ^([^./]+)/$ index.php?lang=$1&page=home

# 4. Language and page
RewriteRule ^([^./]+)/([^./]+)/$ index.php?lang=$1&page=$2
Результат:

Код: Выделить всё

index.php?lang=en&page=services -> /en/services/
index.php?lang=nl&page=diensten -> /nl/diensten/
...
Однако я бы хотел, чтобы английский язык был без языкового подкаталога, а другие языки сохраняли бы языковой подкаталог.

Код: Выделить всё

index.php?lang=en&page=services -> /services/
index.php?lang=en&page=about -> /about/
...
Я мог бы использовать «RedirectMatch 301 /en/(.*) /$1», но это неправильный способ.
Как мне добиться того, что мне нужно?

Подробнее здесь: https://stackoverflow.com/questions/787 ... h-htaccess
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»