location ~^ /ci/ {
auth_basic "Restricted";
auth_basic_user_file htpasswd;
}
由於 nginx 用 apt-get 安裝,此例 htpasswd 則是位於 /etc/nginx/htpasswd ,若不確定的話,翻一下 nginx access/error logs 來看。
比較特別,如果保護的是一個 location 包含要運行 PHP 程式的話,裡頭需要把完整的 PHP 處理也定義好,據說是因為 nginx auth_basic module 不會繼續往下讀起 nginx.conf。
解法:
location ~^ /ci/ {
auth_basic "Restricted";
auth_basic_user_file htpasswd;
# for codeigniter
index index.html index.htm index.php;
try_files $uri $uri/ /ci/index.php;
# for php
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
#fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
沒有留言:
張貼留言