У меня есть приложение в подпапке «subfolder» Apache, поэтому я могу использовать такой URL-адрес, как: https://example.com/subfolder/#/v2 / login
вместо https://example.com/#/v2/login
.
В файле .htaccess
в моей папке htdocs есть следующее:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^(?!subfolder/).* subfolder/$0 [L,NC]
Проблема в том, что он выполняет перезапись даже для корневого URL моего сервера; например, если я перейду на https://example.com/
, Я вижу домашнюю страницу своего приложения во «подпапке». Я бы хотел, чтобы эти правила перезаписи применялись только к приложению в «подпапке».
Я также пытался поместить файл .htaccess
внутрь «подпапки», но это не сработало.
RewriteRule ^ (?! подпапка /).* подпапка / $ 0 [L, NC]
Чтобы исключить только корневой URL (в .htaccess
), вы можете вместо этого изменить шаблон RewriteRule
, чтобы он соответствовал 1 или более символам (. +
). из 0 или более (. *
), которые у вас есть в настоящее время:
RewriteRule ^(?!subfolder/).+ subfolder/$0 [L,NC]
В качестве альтернативы, чтобы исключить все файлы, которые существуют в корне сайта (или где-либо еще в этом отношении), включите два дополнительных условия:
RewriteBase /subfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?!subfolder/).+ $0 [L,NC]