Я хочу игнорировать только правила перезаписи для существующих файлов.Практически любой другой доступ к этому сайту осуществляется через корневой index.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.[^\/]+$
RewriteRule ^(.*?)/?$ /index.php?p=$1 [L,QSA]
Следовательно, даже существующий каталог должен указывать на корневой index.php, если только он не указывает на существующий файл в этом каталоге..
Отлично работает, если подпапка не существует, но я получаю странное поведение на существующих папках.Содержимое index.php загружается, но затем все относительные ссылки в нем прерываются, потому что браузер клиента действует так, как будто он находится в подпапке.
Например, папка data
существует, поэтому, когда вы попали на website.com/data
, она перенаправляется на website.com/data/index.php?p=data
вместо просто website.com/index.php?p=data
, и сайт ломается, потому что ищет website.com/data/build/scripts.js
вместо website.com/build/scripts.js
.
Мой RewriteBase неверен или просто не работает с существующими подкаталогами?Нужно ли выполнять жесткий редирект, если вызывается существующий subdir?