Я борюсь с htaccess за производственную и локальную среду. Мой производственный URL выглядит так: https://example.com/folder/file.php Локальный, который я использую: https://example.dev.local/app/folder/file.php
Как вы видите, моя локальная среда использует приложение, которое является подпапкой. Я хочу запретить установку RewriteBase / app /
Так что после поиска я нашел ответы вроде:
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
Однако я могу заставить его работать для моей локальной среды. Мой htaccess:
Options -Indexes
RewriteEngine On
# Redirect if not https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Urls ends with html
RewriteRule ^(.*).html$ index.php?rt=$1&%{QUERY_STRING} [L,QSA]
# requests which are not static sources will be handled for the admin environment
RewriteCond %{REQUEST_URI} !^admin_cms/\.*\.(jpe?g|css|js|gif|png|woff2?|ttf|ico)$ [NC]
RewriteRule ^admin_cms/?(.*)$ admin.php?rt=$1&%{QUERY_STRING} [L,QSA]
URL-адрес, подобный: https://example.dev.local/app/admin_cms/file.php должен соответствовать для второго правила, но совпадать только тогда, когда я перехожу на URL без приложения.
Итак, мой вопрос: как мне заставить работать оба (prod / local) с одним и тем же htaccess?
Ps. Я пробовал также RewriteRule ^%{ENV:BASE}/admin_cms/?(.*)$ admin.php?rt=$1&%{QUERY_STRING} [L,QSA]