Re: Basic auth при реврайте
Maxim Dounin
mdounin at mdounin.ru
Thu Mar 28 08:43:20 UTC 2013
Hello!
On Wed, Mar 27, 2013 at 08:05:06PM -0400, zeromind wrote:
> Здраствуйте форумчане :), хочу задать вопрос, у меня есть следующие
> локейшены в конфиге:
>
> location /admin {
> if (!-e $request_filename) {
> rewrite ^/admin/(.*)$
> /admin/index.php?route=$1 last;
> }
> index index.php;
> auth_basic "Unauthorized";
> auth_basic_user_file
> /home/***/www/s1/admin/.htpasswd;
> }
>
> location ~ \.php$ {
> try_files $uri = 404;
> fastcgi_index index.php;
> include fastcgi_params;
> fastcgi_pass unix:/var/run/php-fpm.sock;
> }
>
> На php, я реализовал мод реврайт, и для этого в nginxe вбил - rewrite
> ^/admin/(.*)$ /admin/index.php?route=$1 last;
> так вот.. если мы заходим по url /admin/main/ то запросится пару раз
> авторизация.. и если НАЖАТЬ ОТМЕНА, покажится сайт (локейшен php отработает
> динамику), но без css, js, img и тд.. Я так понимаю это из-за реврайта? как
> решить данную проблему ?
У вас доступ к /admin/index.php - не закрыт авторизацией. Решение
проблемы - таки закрыть.
Правильный конфиг будет выглядеть как-то так:
location /admin {
auth_basic ...
location ~ \.php$ {
fastcgi_pass ...
...
}
}
location / {
...
location ~ \.php$ {
fastcgi_pass ...
...
}
}
--
Maxim Dounin
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru