Я использую файл .htaccess ниже, чтобы принудительно перенаправить на «языковой префикс», если в URL не найдено ни одного. Таким образом, если напечатан domain.com/news, он перенаправляет на domain.com/en/news - это работает нормально.
Это правило не должно применяться к определенным папкам, таким как images, swf и myphp. Он отлично работает для первых двух, поэтому, когда я захожу на domain.com/swf, я вижу список содержимого каталога и «en» не добавляется.
Но это не работает для папки "myphp" (это установка phpmyadmin). Обычно он загружает myphp / index.php, но добавление имени файла в правило не имеет значения. Страница просто продолжает загружаться, но ничего не происходит. Кто-нибудь знает почему?
RewriteEngine On
RewriteBase /
#force redirect to language specific page
RewriteCond $1 !^(en|fr|nl)$
#dont apply the rule to the assets folders
RewriteCond $1 !^images$
RewriteCond $1 !^swf$
RewriteCond $1 !^myphp$
#redirect to default EN page if no language param is present in URI
RewriteRule ^([^/]+)/.* /en/$0 [L,R=301]
#remove index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php?$1 [L]