百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

nginx location 多root理解location

off999 2025-01-12 17:40 25 浏览 0 评论

由于应用需求,这个 r 目录需要单独拉出来做处理,nginx 最开始是这样写的:

server {

root /home/webadm/htdocs;

index index.php;

location /r/ {

root /diska/htdocs;

}

location ~ \.php {

fastcgi_pass unix:/home/php/php-fastcgi.sock;

fastcgi_index index.php;

include fastcgi_params;

expires off;

}

}

最开始的写法是这样的,由于代码从原来的/home/webadm/htdocs/r 拷贝到 /diska/htdocs/r,所以未发现问题。

代码更新后,发现访问r 下面的 php 相关文件直接 404.

看了一下官方的文档,我们先来理解

location /r/ {

...

}

# matches any query beginning with /r/ and continues searching,

# so regular expressions will be checked. This will be matched only if

# regular expressions don't find a match.

也就是说当请求的是 /r/example.php 时,nginx 匹配location 后继续查找,最后匹配到 location ~\.php .这时候

nginx 解释文件的路径在 /home/webadm/htdocs/r/example.php。由于之前的文件本来在那里,所以没发现问题。

那么我们再来看看这个location 的解释:

location ~ /r/ {

...

}

# matches any query beginning with /r/ and halts searching,

# so regular expressions will not be checked.

也就是说找到匹配的location r 之后,nginx 将不往下面的 locatioin 处理了。如果将最上面的 location r 换成这

样的配置,那么php 文件将会被浏览器直接下载:

location ~ /r/ {

root /diska/htdocs;

}

nginx 不支持全局的fastcgi 设定(类似于访问日志,错误日志这样)的配置,所以处理的方法有二:

1. 在 location ~/r/ 中增加fastcgi 的处理。或者增加一个子location 匹配php 的,具体如下:

location ~ /r/ {

root /diska/htdocs;

fastcgi_pass unix:/home/php/php-fastcgi.sock; #这里也可能是tcp

include fastcgi_params;

}

或者:

location /r/ {

root /diska/htdocs;

}

location ~ /r/.+\.php {

fastcgi_pass unix:/home/php/php-fastcgi.sock; #这里也可能是tcp

include fastcgi_params;

}

2. 在全局的php 配置中处理该 location:

location /r/ {

root /diska/htdocs;

}

location ~ \.php {

if ($uri ~ /r/) { #这里判断是r 目录过来的匹配的php,重新指定其root 目录

root /diska/htdocs;

}

fastcgi_pass unix:/home/php/php-fastcgi.sock;

fastcgi_index index.php;

include fastcgi_params;

expires off;

}

另外这里需要注意的是,前面的 location /r/ 不能是 location ~/r/ ,否则php 文件会直接下载。

相关推荐

手机版爱思助手app下载苹果版

第一步:我们先在电脑上安装好爱思助手,并且把手机与电脑连接起来;  第二步:在电脑上打开爱思助手以后,点击顶部的“软件资源”栏目;  第三步:随后在软件资源列表中即可看到“爱思助手”应用,点击...

ie浏览器图标删除不了(ie浏览器从桌面无法删除)

  方法一:  1、点击“开始”,在搜索中输入“gpedit.msc”回车打开注册表;  2、点击“用户配置-管理模板-桌面”左侧的下拉按钮;  3、单击”桌面“,右侧弹出桌面的设置栏;  4、双击“...

bitlocker是什么意思(bitlocker属于什么锁)

Bitlocker的意思:驱动器加密;磁盘加密;硬盘加密。BitLocker驱动器加密它是在WindowsVista中新增的一种数据保护功能,主要用于解决一个人们越来越关心的问题:由计算机设备的物理...

win10开机启动文件夹在哪里(电脑开机启动文件夹win10)

win7下:在运行里打入gpedit.msc然后回车。用户配置-〉管理模板-〉系统点击右边“只运行指定的windows程序”点击允许的应用程序列表显示按钮在里面添加需要运行的程序,...

如何升级win11专业版(升级win11专业版会删掉东西吗)

简单来说,目前升级到Windows11系统上,有三种常见方法:1、通过微软推送更新,从Windows更新升级。2、更新不求人,通过Win11更新助手升级。助手更新系统也非常简单省心。3、无视硬件限制...

office2007支持win10吗(office2007支持win7吗)

1不兼容2Office2007和Windows10之间存在一些兼容性问题。Office2007是较旧的版本,而Windows10是较新的操作系统。因此,某些功能可能无法在Office20...

rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
解压软件rar下载(解压软件rar下载什么)
解压软件rar下载(解压软件rar下载什么)

rar是一种文件压缩格式,可以把一个文件压缩到只有原来文件的几分之一大小。大大节省了存储空间。rar文件怎么打开呢,需要电脑上安装文件压缩软件,解压才能打开压缩包里的文件。WinRAR软件是用的最多的压缩软件,一般电脑装系统时都装了这个软件...

2026-01-12 04:51 off999

戴尔电脑官方售后服务网点(戴尔电脑官方售后地点)

戴尔笔记本电脑维修点有4个,地点如下:A:戴尔笔记本电脑维修点地址:上海市长宁区长宁路1027号兆丰广场5层B:戴尔笔记本电脑维修点地址:上海市徐汇区漕溪北路45号C:戴尔笔记本电脑维修点地址:上...

电脑哪个键是截图(苹果电脑哪个键是截图)

1.第一个,通过键盘上的截图键来截取全屏,键盘上都有一个printscreen键,这个键就是用来截图的,只需要按一下这个键,然后再打开word文档,然后按一下ctrl+v键,就可以把这个截图,粘贴...

下载设置到手机上(手机设置下载到桌面上)
下载设置到手机上(手机设置下载到桌面上)

1.打开手机的“设置”图标。2.进入设置页面,滑动手机屏幕,找到“桌面、锁屏与息屏”选项并点击。3.进入新页面,滑动手机屏幕找到“添加应用到主屏幕”选项,此时该选项右侧的按钮为关闭状态。4.点击一下“添加应用到主屏幕”选项右侧的按钮,按钮点...

2026-01-12 03:03 off999

怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
如何连接打印机网络共享(打印机如何通过网络共享)

打印机设置共享打印的操作步骤一、在连接打印机的电脑上依次点击“开始“菜单-”设置“-”打印机“,打开打印机界面后右键单击“打印机”图标点击到“共享”选项界面接着点击“共享这台打印机”,最后点击“确定”...

win10自带风扇控制软件(w10风扇管理在哪里)

在Windows10系统中,风扇的设置通常是由计算机硬件和BIOS控制的。但是,您也可以使用一些软件工具来调整风扇的设置。以下是一些常用的方法:1.使用BIOS设置:在计算机启动时按下相应的按键(...

系统类小说女主文(系统文推荐女主)

1、《团宠郡主有系统》2、《绑定才女系统后文躺赢了》 3、《炮灰女配苟成了女主》 4、《在暴君身边卑微求生》 5、《师徒恋文里的反派非要和我HE》6、《穿成反派男主极品娘...

取消回复欢迎 发表评论: