Как разрешить только "Требовать все отказано" в.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
с "Требовать все предоставлено", что я бы попытался избежать.