проблема .htaccess - PullRequest
       7

проблема .htaccess

1 голос
/ 03 февраля 2010

Я использую файл .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]

1 Ответ

1 голос
/ 03 февраля 2010

мне кажется, что вы можете столкнуться с проблемами из-за попытки сопоставить конец строки ($) после имени папки, когда в URL есть еще Что произойдет, если вы оставите знак доллара вне названия папок?

...