宝塔面板部署thinkphp项目时ngix和apach服务器pathinfo的设置

Posted 邯郸戏曲开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宝塔面板部署thinkphp项目时ngix和apach服务器pathinfo的设置相关的知识,希望对你有一定的参考价值。

一 前言

        宝塔面板无论是对于linux系统还是windows系统,都提供了一键式的部署方案,操作简单,不需要复杂的编程基本功,小白可以完成专业复杂的后端部署。  对于宝塔提供的thinkphp5框架而言,更是大大提高开发效率。今天,针对浏览器访问地址中经常用到的url的pathinfo设置,进行分析总结。

二 pathinfo的概念

     pathinfo是thinkphp框架为了url的简化和直观,设定的一种url形式。 

    今天以最简单的控制品来说明。 

    举个例如子

   

   http://tp5.com/index/index/index2

  域名为http://tp.com   访问模块为index  控制器为index  方法为index2

  tp5中的方法如下:

 

index2方法可以带参数,那么加一个参数看下效果

http://tp5.com/index/index/index2/a/我要给变量a传一个参数

看到这里,tp5的url传参是直接在方法名后/变量/变量值  

这就是pathinfo!!!

那么,抛开tp5的pathinfo,tp3与传统兼容模式,对是复杂的url传参,非常不友好,也不利于seo.

今天要说的重点不是tp5的操作,而是宝塔面板在部署时,遇到的path设置问题。

三  ngix服务器pathinfo

     宝塔服务器自带的一键部署tp5的pathinfo正常,ngix版本为1.8.

     但是如果从tp5官网下载的框架拷贝到宝塔网站中,path失效,经对比发现问题所在,点开网站设置,修改如下即可:

    

   

   把网站伪静态,写入如下规则即可,

location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}

意为隐匿index.php文件将?s=这种形式变量传参形式重定向到index.php.

四 apach服务器的pathinfo

   宝塔自带apach版本为2.4, 在tp5框架中,专门有一个文件是写给apach读取的,叫.htaccess文件 ,  目录在public文件夹下

   

 

 

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On

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

打开.htaccess.,如上修改,打开重定向即可。注意隐藏index.php时,有时apach默认少了?号,加上?号,pathinfo一切正常。

五  本机测试

     宝塔所有建站方式为域名+端口。如果想在window系统本地编辑测试,在购买域名之后,需要将域名绑定到本机。打开如下目录下的hosts文件

    

  

127.0.0.1 tp.com

表示当本机访问tp.com域名时,访问本机

五 总结

    关于pathinfo,网上和论坛里,人者见仁,智者见智。实际工作中,用宝塔面板来配置服务器和网站,操作相对简单,易于理解。总结起来其实就两点,分别修改网站下的配置即可。

   ngix  修改伪静态 

   apach 修改.htaccess文件

 

    

 

 

 

 

     

以上是关于宝塔面板部署thinkphp项目时ngix和apach服务器pathinfo的设置的主要内容,如果未能解决你的问题,请参考以下文章

wex5教程 宝塔面板+lnmp+wex5项目部署

基于宝塔面板安装部署mochat

宝塔面板部署django程序 测试部署两个网站

宝塔服务器面板 部署 thinkphp5 坑

CentOS7 宝塔面板 MinIO安装部署/服务开机启动

宝塔面板部署Spring Boot项目