nginx:将 .php 文件的执行限制在某些目录
nginx: limit execution of .php files only to certain directories
现在我的 nginx 配置为将 php 文件请求从 所有目录 重定向到 php5-fpm,如下所示:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
如何在访问 php 时将 php 文件的执行限制在几个预定义的目录中,例如 'dir1'、'dir2' 和 'dir3'应该拒绝或忽略其他目录中的文件?
location ~ ^/dir1/subdir1/.+\.php(/|$) {
include php.conf;
}
location ~ ^/dir2/subdir2/.+\.php(/|$) {
include php.conf;
}
location ~ ^/dir3/subdir3/.+\.php(/|$) {
include php.conf;
}
php.conf
的内容
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
现在我的 nginx 配置为将 php 文件请求从 所有目录 重定向到 php5-fpm,如下所示:
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
如何在访问 php 时将 php 文件的执行限制在几个预定义的目录中,例如 'dir1'、'dir2' 和 'dir3'应该拒绝或忽略其他目录中的文件?
location ~ ^/dir1/subdir1/.+\.php(/|$) {
include php.conf;
}
location ~ ^/dir2/subdir2/.+\.php(/|$) {
include php.conf;
}
location ~ ^/dir3/subdir3/.+\.php(/|$) {
include php.conf;
}
php.conf
的内容fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;