2015-02-05 2 views
0

Я следующее расположение блоков в моем блоке сервера Nginx:Как ограничить NGINX переписывание «местоположения» с auth_basic_user_file

location ~ ^/admin { 
    auth_basic "Restricted"; 
    auth_basic_user_file /etc/nginx/.htpasswd; 
    if (!-e $request_filename){ 
     rewrite ^(.*)$ /index.php?uri=$1; 
    } 
} 

Но это не работает. Файл /etc/nginx/.htpasswd существует и был создан с помощью команды Htpasswd:

sudo htpasswd -c /etc/nginx/.htpasswd admin 

Я сделал это раньше, но он просто перестал работать в этот раз. Единственное различие на этот раз заключается в том, что я пытаюсь сделать auth_basic_user_file внутри блока перезаписи на этот раз.

ответ

0

Эта конфигурация не будет работать, поскольку фаза перезаписи if XYZ всегда будет работать до фазы доступа, auth_XYZ, независимо от того, как вы их упорядочиваете в блоке местоположения.

See Nginx Phase Order

Вам необходимо добавить требование аутентификации РНР блока в дополнение к тому, у вас уже есть.

Смежные вопросы