我在 nginx 配置中为所有文件进行 HTTP 授权,不包括 index.php:
server {
listen 80;
root /var/www/site;
index index.php;
charset utf-8;
location ~ /(?!index.php) {
auth_basic "Unauthorized";
auth_basic_user_file /var/www/site/htpasswd;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 3000;
}
}
于是,nginx 不再执行 PHP 文件,而是开始给他们下载。没有location ~ /(?! index.php)
- 文件通常会被执行。
如何正确地做出否定条件?