Это моя базовая конфигурация для сайта WordPress.
server {
root /var/www/site;
listen *****;
server_name *****;
include basics.conf;
}
Как только я добавляю раздел местоположения для ограничения доступа к входу в WP, файл wp-login.php отправляется в браузер, а не выполняется как php. у меня есть
server {
root /var/www/site;
listen *****;
server_name *****;
include basics.conf;
location ^~ /wp-login.php {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Я пробовал скопировать то, что есть в моем basics.conf после настроек auth_, но это тоже не помогло. Мое местоположение / также настраивается в моем basics.conf, потому что я использую его для всех сайтов php.
server {
root /var/www/site;
listen *****;
server_name *****;
include basics.conf;
location ^~ /wp-login.php {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
index index.html index.htm index.php;
allow all;
if (-f $request_filename) {
break;
}
if (!-f $request_filename) {
rewrite ^/(.+)$ /index.php last;
break;
}
}
}
Это мой basics.conf
location / {
index index.html index.htm index.php;
allow all;
if (-f $request_filename) {
break;
}
if (!-f $request_filename) {
rewrite ^/(.+)$ /index.php last;
break;
}
}
include php-fastcgi.conf;
Это мой php-fastcgi.conf
location ~ \.php$ {
try_files $uri =404;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Итак, как я могу защитить мой логин с помощью аутентификации, сохраняя при этом его анализ как php вместо отправки в браузер?