Graent.Hu 的博客

新浪微薄腾讯微薄

最新碎语:最近感觉有些迷茫,怎么办~

您的位置:Graent.Hu 的博客 >Apache/IIS/Nginx> phpstudy下nginx使用虚拟主机模式的index.php隐藏和path_info配置

phpstudy下nginx使用虚拟主机模式的index.php隐藏和path_info配置

  最近在使用phpstudy在本地做开发,发现确实是很强大的一个集成环境,因为考虑到性能问题,所以选择了nginx作为服务器软件(nginx的性能就不多说了,亲可以自己搜索下看看),因为使用的时候不是一个站点开发,所以测试的时候使用的是虚拟主机模式(phpstudy的虚拟主机设置很方便),这样以来因为每个站点都使用path_info,所以在nginx的配置文件(位置不多说phpstudy的面板中可以直接打开),编辑path_info支持的如下如,找到对应的地方添加这段代码即可:


location ~ \.php(.*)$  {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
  加完之后的效果:


QQ截图20160726033012.png

这样之后nginx就可以支持path_info了,重启nginx就可以了

那么,虚拟机的如何单独的隐藏index.php呢?phpstudy官方给出的方法是这样的:


1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件

这个.htaccess文件一般discuz,dedecms都自带

# .htaccess rewrite  rule
rewrite ^(.*)/archiver/((fid|tid)-[w-]+.html)$ $1/archiver/index.php?$2 last;
rewrite ^(.*)/forum-([0-9]+)-([0-9]+).html$ $1/forumdisplay.php?fid=$2&page=$3 last;
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^(.*)/profile-(username|uid)-(.+).html$ $1/viewpro.php?$2=$3 last;
rewrite ^(.*)/space-(username|uid)-(.+).html$ $1/space.php?$2=$3 last;
rewrite ^(.*)/tag-(.+).html$ $1/tag.php?name=$2 last;
# end .htaccess rewrite rule

2.
然后修改nginx.conf,在需要添加伪静态的虚拟主机的server{}中引入.htaccess文件


server{
include xxxx/.htaccess;  ##(把这个改成你.htaccess文件的具体位置)
}


重启nginx.conf即可。
  从上面phpstudy给出的方法看出配置并不难,但是按照这个设置之后发现没有生效,我的问题主要出在,我是用的windows的环境,最后的.htaccess文件的包含路径问题,例子写的很模糊,原谅我明白不了,所以尝试一下把include xxxx/.htaccess 改成 include "E:/phpstudy/use/WWW/v3/public/.htaccess" 试一下,发现就可以了,注意看这里说的是修改nginx.conf也就是配置文件,这里配置的是全局生效的,如果使用了phpstudy的虚拟主机方式的话,这个include .htaccess的位置就需要写在虚拟主机的配置文件里面了(phpstudy的中nginx的虚拟主机配置文件在面板中也能直接打开):


如图放在对应的虚拟主机的位置:

QQ截图20160726033636.png

这样之后,重启nginx就可以了,是不是很简单

我的微信:graent_hu

欢迎扫码加我和微信好友,有什么问题我们可以一起探讨,有什么需要也随时欢迎发消息给我~

转载请注明出处:

本文标题:phpstudy下nginx使用虚拟主机模式的index.php隐藏和path_info配置

本文链接:https://www.wlyc.cn/post-36.html

发表评论

路人甲 表情
看不清楚?点图切换

网友评论(4)

按你说的去做,不行啊兄弟!!!!
2333 1年前 (2017-06-25) 回复
@2333:具体情况还得看具体奥,我也是参考了不少情况才处理好的,步骤只能作为参考,兄弟
9ra3nt 1年前 (2017-06-25) 回复
网站建设 2年前 (2016-10-18) 回复
@网站建设:感谢来访
9ra3nt 2年前 (2016-10-19) 回复