投稿 评论 顶部

thinkphp3.2.3之apache转nginx伪静态设置

佚名 网络安全

本地开发的项目,使用的是apache服务器,完成项目之后,之前搭建到的服务器都是Windows服务器上,从而上线,这次需要在宝塔上nginx服务器上搭建,所以需要将apache的伪静态更改为nginx:

1.在网上搜索到的基本上都不是自己理想状态下的需求,搜索到的方法基本上与比如说如下链接:

https://blog.csdn.net/hankai945/article/details/50723229

搜索到的方法基本上与上面链接描述的一致,但是无论怎么样,URL的重写都是失败的,无法正常运行项目。

2.宝塔内置的伪静态也是不能成功解决我遇到的这种问题:

选中其中的thinkphp也是无法正常运行项目!!!

最后想到了另一种解决办法,thinkphp的四种URL模式中的重写模式,最终解决了问题,解决流程:

1.打开宝塔Apache转Nginx工具:

转换地址:https://www.bt.cn/Tools/apache_to_nginx

2.打开.htaccess文件复制URL重写模式并将此进行转换:

<IfModule mod_rewrite.c>?RewriteEngine on?RewriteCond %{REQUEST_FILENAME} !-d?RewriteCond %{REQUEST_FILENAME} !-f?RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>

转换之后为:

if (!-d $request_filename){set $rule_0 1$rule_0;}if (!-f $request_filename){set $rule_0 2$rule_0;}if ($rule_0 = "21"){rewrite ^/(.*)$ /index.php/$1 last;}

将以上转换过的代码复制到伪静态修改框内保存即可解决问题:

?

?

?

?