Назад | Перейти на главную страницу

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

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

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

Возможно, это просто невозможно. Кто угодно?

<IfModule mod_rewrite.c>
    <ifModule mod_gzip.c>
        RewriteEngine On
        RewriteRule ^/mod_gzip/?$ mod_gzip-is-enabled.php
    </IfModule>
</IfModule>

Вложенный <IfModule> контейнеры не ваша проблема (да, это возможно). (Но это внешний <IfModule mod_rewrite.c> нужен контейнер?)

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