liunx php 项目重定向,nginx下thinkphp的URL重定向

在将ThinkPHP项目从Apache迁移到Nginx服务器时,遇到了URL重定向404错误的问题。解决方法是调整Nginx配置文件,添加重写规则,并在ThinkPHP配置中设置URL_MODEL为2,启用REWRITE模式。Apache的URL重写规则与Nginx的不同,理解两者差异对于正确配置至关重要。
摘要由CSDN通过智能技术生成

最近使用thinkPHP框架进行开发的时候遇到一个问题,把项目部署到Linux上用nginx当服务器的情况下,URL重定向出现问题,同样的URL后缀,在本地环境可以正常访问,在服务器上就出现了404 ,但是使用TP的全路径URL是可以访问的。后来经过查看发现是由于本地环境和服务器上使用的服务载体不同导致的,本地环境使用的是Apache,服务器上使用的是nginx。经过查看TP的官方文档,解决了问题:

Apache的URL重写:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

nginx的重写,需要在nginx的配置信息中添加:

location / { // …..省略部分代码

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php?s=$1 last;

break;

}

}

然后要把项目的URL_MODEL改成2:

'URL_MODEL' => 2, URL访问模式,可选参数0、1、2、3,代表以下四种模式: 0

(普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 默认为PATHINFO 模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值