宝塔面板部署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文件

 

    

 

 

 

 

     

posted @ 2017-09-24 21:34  邯郸戏曲开发  阅读(20224)  评论(4编辑  收藏  举报