nginx php url重写,Nginx URL重写

在正式介绍 nginx 中 url 重写时,我们先看看什么是 url 重写?

URL 重写就是首先获得一个进入的 URL 请求然后把它重新写成网站可以处理的另一个 URL 的过程。举个例子来说,如果通过浏览器进来的 URL 是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”,这样的URL,这样的网址可以更好的被网站所阅读。

正则表达式

可以使用正则表达式去匹配指定的路径,然后借助 rewrite 命令重写指令。

location / {

root         html;

index       index.php;

rewrite    (.*)$  /index.php/$1

}

一般情况下,静态资源我们是不需要进行重写的。可以通过 if 判断是否为文件,文件不进行重写(如:css、js、图片等不重写)。如下:location / {

root html;

indexindex.php;

# 如果文件不存在,则重写

if ( !-e $request_filename ) {

rewrite (.*)$ /index.php/$1

}

}

注意:if后面需要空格,且 !-e 是放到前面的。

try_files

在 0.7 以后的版本中加入了一个 try_files 指令,配合命名 location,可以部分替代原本常用的 rewrite 配置方式,提高解析效率。

try_files指令:语法:try_files file … uri 或 try_files file … = code

默认值:无

作用域:server location

其作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹)。如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。

实例:尝试 $uri 是否能够访问。如果不能访问,则返回 index.jsp?$uri 。location / {

root html;

index        index.php;

# 你帮我试试 $uri 是否能够访问,不能访问就访问 index.jsp?$uri

try_files$uri  index.jsp?$uri

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值