Вложенные RewriteRules - PullRequest
       4

Вложенные RewriteRules

0 голосов
/ 06 октября 2018

У меня есть корневой каталог, где у меня есть .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, чтобы мне всегда было ясно, какие папки требуют этого, а какие нет.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...