2014-11-30 2 views
2

Итак, у меня есть в моем веб-корне файл admin.php, и я хочу, чтобы каждый раз, когда кто-то пишет/admin, перенаправляется на этот /admin.php.Файл RedirectMatch не найден

я написал в своей HTAccess

RedirectMatch 301 ^/админ $ Файл /admin.php

Однако я получаю сообщение об ошибке от апача "файл не найден".

Я создал пустую/папку администратора, и она работает ...


Тогда я пытаюсь иметь другую (также неактивные папку несуществующей) для перенаправления admin.php. Итак, я пишу

RedirectMatch 301 ^/мля $ Файл /admin.php

и он работает ...


Наконец я удалить admin.php и у меня есть вещь перенаправлен на другой .php

RedirectMatch 301 ^/админ $ /index.php

и снова работает ...


Я понимаю, что по какой-то причине апач портит вещи, когда папка будет перенаправлен с таким же именем с .php

С Rewrite I может сделать перенаправление без каких-либо проблем, но мне было интересно, возможно ли это с помощью только перенаправления ... Может быть, я здесь что-то упустил ...

ответ

3

apache messes things up, когда папка будет перенаправлена ​​f ром имеет то же имя с .php

Это связано с модуля содержания переговоров в Apache, который работает до того, mod_rewritemod_alias и делает Apache веб-расширений соответствия сервера файлов. например /file может быть в URL, но он будет служить /file.php.

Чтобы исправить это поведение отключитьMultiViews, помещая это правило на верхней части вашего .htaccess:

Options -MultiViews 
+1

Это было. Большое спасибо :) –

+0

Добро пожаловать, рад, что это сработало. – anubhava

+0

hey anubhava Я хочу поговорить с тобой какое-то время на htaccess, пожалуйста, помогите мне – Amy