Как разрешить только "Требовать все отказано" в.htaccess?

У нас есть сервер Apache 2.4. И в нашем VHost для установки WordPress мы разрешаем только переопределение Limit, Options а также FileInfo, (AllowOverride Limit Options FileInfo).

<VirtualHost *:443>
DocumentRoot /www/www.wordpressblog.com
ServerName www.wordpressblog.com
ServerAlias wordpressblog.com

ErrorLog /var/log/apache2/www.wordpressblog.com_error.log
CustomLog /var/log/apache2/www.wordpressblog.com_access.log combined

SetEnv APPLICATION_ENV production

Include conf-available/server-ssl.conf

<Directory /www/www.wordpressblog.com>
    Options FollowSymLinks
    AllowOverride Limit Options FileInfo
    DirectoryIndex index.php
    Order allow,deny
    Allow from all
</Directory>

Так что плагин WordPress использует .htaccess с FilesMatch в Require all denied за .php-Файлы, чтобы гарантировать, что нижележащие каталоги не могут быть использованы вредоносными сценариями PHP.

<FilesMatch  "\.php$">
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
</IfModule>

Но с этими опциями все базовые доступные файлы (например, CSS) отвечают кодом состояния HTTP 500 (внутренняя ошибка сервера).

/www/www.wordpressblog.com/wp-content/plugins/awesomeplugin/.htaccess: требовать здесь нельзя

Если я продлю AllowOverride с AuthConfig в VHost происходит то же самое, "требовать там нельзя". Но я не могу найти ошибку. Также AllowOverride AuthConfig не может быть решением, так как другие плагины могут поставить .htaccess с "Требовать все предоставлено", что я бы попытался избежать.

0 ответов

Другие вопросы по тегам