.htaccess RewriteRule работает, только если файл с таким именем не существует - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь использовать правило перезаписи htaccess, например:

IF url = http://example.com/admin/dashboard LOAD FILE http://example.come/admin/dashboard.php

У меня есть такая файловая структура

example.com/
|-- admin/
    |-- .htaccess
    |-- dashboard.php

, если я напишу это в своем файле .htaccess

RewriteEngine On
RewriteRule ^test$ dashboard.php

и введу этот адрес в браузере http://example.com/admin/test

Я правильно вижу содержимое панели инструментов.php файл

Но если я изменю свой файл .htaccess на

RewriteEngine On
RewriteRule ^dashboard$ dashboard.php

и наберу в браузере http://example.com/admin/dashboard, я получу страницу Not Found

, почему работает RewriteRuleтолько если мой URL указывает на несуществующий файл?

1 Ответ

0 голосов
/ 04 февраля 2019

Отключите параметр MultiViews в вашем .htaccess, который мог быть включен в конфигурации вашего сервера.

Options -MultiViews    
RewriteEngine On

RewriteRule ^dashboard/?$ dashboard.php [L,NC]

Вы также можете добавить RewriteBase чуть ниже строки RewriteEngine:

RewriteBase /admin/
...