Я установил 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
Когда вы получаете доступ /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
}
}