У меня есть корневой каталог, где у меня есть .htaccess, где я определяю, какие подпапки требуют использования HTTPS.Это определяется следующим образом:
<If "\
%{REQUEST_FILENAME} =~ m#/subfolder-1/.*$# || \
\
...
\
%{REQUEST_FILENAME} =~ m#/subfolder-n/.*$# || \
\
">
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</If>
Это прекрасно работает для всех моих целей, однако в одной из этих подпапок я указал правило перезаписи, чтобы мои вызовы API выглядели лучше./subfolder-n/.htaccess
выглядит следующим образом:
RewriteEngine On
RewriteRule api/(.*)$ api.php?request=$1
Когда я пытаюсь вызвать API через переписанный URL (например, .../api/endpoint
), он теперь работает, но вызывает его напрямую (например, .../api/api.php?request=endpoint
)работает хорошо.Если я отключу правило перезаписи в корневом каталоге (т. Е. В отношении HTTPS), правило API неожиданно заработает.
Знаете ли вы, в чем проблема?В качестве альтернативы, каков правильный подход для достижения этой цели?Обратите внимание, что я хочу сохранить условия перезаписи HTTPS в корневом каталоге .htaccess, чтобы мне всегда было ясно, какие папки требуют этого, а какие нет.
Спасибо