Nginx полная защита папок не работает
Я установил nginx(1.4.3) с PHP-FPM(5.4.20). я хочу защитить свою WordPress wp-admin
папка.
мой файл конфигурации nginx domain.conf
:
server {
listen 80;
server_name example.com;
root /var/www;
location / {
index index.php;
try_files $uri $uri/ /index.php?$args;
}
location /wp-admin {
index index.php;
allow 192.168.1.2;
deny all;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
}
Проблема: когда я загружаю wp-admin
Папка в другой IP я получил 403(хорошо), но я могу загружать файлы PHP сайта. лайк /wp-admin/about.php
1 ответ
Решение
Когда вы получаете доступ /wp-admin/about.php
блок местоположения PHP обрабатывает запрос. Не /wp-admin
блок.
Чтобы достичь того, что вы хотите, вам понадобится блок местоположения PHP и try_files
директива внутри /wp-admin
блок. Вот общее решение для вашего случая использования!
server {
location / {
}
location /wp-admin {
# try_files ...;
# allow ip.ip.ip.ip;
# deny all;
location ~* \.php$ {
# directives to process PHP inside wp-admin
}
}
location ~* \.php$ {
# directives to process PHP outside wp-admin
}
}