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

Apache .htaccess <ifModule здесь запрещен

Запуск Apache в Ubuntu Precise с PHP 5.5

Пытаюсь получить доступ к моему var/www/ дает мне 500.

/var/log/apache2/error.log

показывает:

/var/www/web/.htaccess: <IfModule not allowed here

мой .htacess:

DirectoryIndex app.php


<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>       
        RedirectMatch 302 ^/$ /app.php/       
    </IfModule>
</IfModule>

В свой apache.conf я добавил:

<Directory />
AllowOverride ALL
</Directory>

И это сработало после перезапуска apache.

Вам необходимо настроить Apache, чтобы включить конфигурацию из файла .htaccess. Поэтому в разделе каталога убедитесь, что у вас есть опция

Allowoverride ALL 

для получения дополнительной информации больше информации о allowoverride.

В вашей настройке, если вы используете только mod_rewrite, возможно, вы можете установить только FileInfo, я всегда устанавливаю Параметры параметр SymLinksIfOwnerMatch, чтобы иметь возможность выполнять перенаправление на другие сайты.

Allowoverride FileInfo 
Options SymLinksIfOwnerMatch

Я надеюсь, что это поможет, если вы уже установили эту конфигурацию, добавьте информацию о своей конфигурации виртуального хоста.