本地开发的项目,使用的是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;
}
将以上转换过的代码复制到伪静态修改框内保存即可解决问题: