htaccess - Это можно сделать? (Вложенные IfModules)

Я пытаюсь перенаправить на URL-адрес, если проверка для модуля проходит.

Что-то вроде этого (что, похоже, у меня не работает.)

Возможно, это просто невозможно. Кто-нибудь?

<IfModule mod_rewrite.c>
    <ifModule mod_gzip.c>
        RewriteEngine On
        RewriteRule ^/mod_gzip/?$ mod_gzip-is-enabled.php
    </IfModule>
</IfModule>
0
задан 17 March 2018 в 01:53
1 ответ

Вложенные контейнеры не ваша проблема (да, это возможно). (Но необходим ли внешний контейнер ?)

Ваша проблема - шаблон RewriteRule ^ / mod_gzip /? $ :

 RewriteRule ^ / mod_gzip /? $ Mod_gzip-is-enabled.php
 

Это никогда не будет совпадать в контексте каталога .htaccess из-за префикса косой черты в шаблоне RewriteRule . Вам нужно удалить его, например:

RewriteRule ^mod_gzip/?$ mod_gzip-is-enabled.php [L]

Чтобы соответствовать запрошенному URL в форме / mod_gzip / (или / mod_gzip ).

В каждом каталоге .htaccess , URL-путь, которому соответствует шаблон RewriteRule , меньше префикса каталога , который, в частности, заканчивается косой чертой. Таким образом, соответствующий URL-путь никогда не начинается с косой черты. (Это отличается от того, когда директивы используются в контексте сервера или виртуального хоста.)

Кроме того, вам, вероятно, следует включить флаг L , если у вас есть другие директивы.

2
ответ дан 4 December 2019 в 13:26

Теги

Похожие вопросы