Какой самый простой способ ограничить доступ ко всем файлам, кроме одного, когда весь домен обслуживается через FastCGI?
Проблема, возникающая при использовании ниже conf, заключается в том, что я не могу получить доступ к / dir (у меня спрашивают пароль в каком-то цикле, правильный логин + пароль не позволяет мне войти).
Кроме того, такая же конфигурация fastCGI дублируется в location = /unrestricted_file.php и location ~ .php $.
Структура:
server {
location = /unrestricted_file.php {
# FastCGI conf...
break;
}
location / {
root
index
auth_basic "Restricted";
auth_basic_user_file file;
}
location /dir {
auth_basic "Restricted";
auth_basic_user_file file;
}
location ~ \.php$ {
auth_basic "Restricted";
auth_basic_user_file file;
# fastcgi_pass...
}
}
Вы можете отключить аутентификацию для местоположения с помощью auth_basic off
. Это сократит ваш конфигурационный файл примерно до следующего: (непроверено)
server {
auth_basic "Restricted";
auth_basic_user_file file;
location = /unrestricted_file.php {
auth_basic off;
# fastcgi_pass...
}
location / {
root
index
}
location ~ \.php$ {
# fastcgi_pass...
}
}
"Цикл" возникает из-за того, что аутентификация для /dir
указывается два раза (/
и /dir
). Чтобы увеличить это, попробуйте изменить текст на "Restricted path /"
и "Restricted path /dir"
и ваш цикл должен показывать вам чередование обоих сообщений.