一元网络论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3391|回复: 0

原创图解:ThinkPHP Nginx配置设置隐藏index.php,缩短路径正确...

[复制链接]

3万

主题

3万

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
96167
发表于 2020-11-22 14:47:47 | 显示全部楼层 |阅读模式

一、在ThinkPHP的开发手册中,有这样一段说明 :

隐藏index.php,可以去掉URL地址里面的入口文件index.php ,但是需要额外配置WEB服务器的重写规则。

如果是Nginx 环境的话,可以在Nginx.conf 中添加:

location / { 

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php?s=/$1 last;

break;

}

}

这段说明写的过于简单,而大家的实际应用环境千差万别,只按这一段话去配置的话,除非是最低级的新手可能会成功,为什么呢,因为只有最低级的新手才会有以上的Nginx环境,开发手册的说的就是在最简单只简单安装Nginx并且只有一个根目录网站的情况去配置Nginx.conf 的情况。但实际上我想学PHP的人没有只在根目录下直接建网站的,所以肯定不会成功。

你如果按开发手册配置最容易出现的错误是nginx: [emerg] "location" directive is not allowed here in 。这是因为你的网站不只一个,并且目录并不是根目录,所以根本不能配置Nginx.conf这个文件,这个文件只有你的服务器只有一个网站且直接在根目录下时才有效。

尊重知识产权,转载请注明并复制本段,一元复始技术论坛原创http://www.1rmb.net.

二、以下是在PHPSTUDY环境多网站模式下Ngnix的正确配置方法。


在phpstudy多网站模式下,需要配置的是VHOST.CONF文件,根本不是什么Nginx.CONF文件,要不然你怎么也不会配置成功。APACHE同理一定要到你的虚拟网站的配置文件和目录里配置才会起作用。

尊重知识产权,转载请注明并复制本段,一元复始技术论坛原创http://www.1rmb.net.

三、vhost.conf文件的配置。

如果你直接把开发手册中的那段代码粘贴进去,会提示如下错误:

nginx: [emerg] duplicate location "/" in。

这时因为在VHOST.CONF文件里已经有   location / { }


所以你只需要把

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php?s=/$1 last;

break;

}

这一段文件复制到原有的location / { }中去即可。


配置完成后的文件如下图。  配置完成记得重启nginx.


好了,以上才是PHPSTUDY,nginx多网站模式下的正确配置THINKPHP隐藏INDEX.PHP文件的配置方法,如果你按照官方开发手册不会配置成功,开发手册中的坑是真多啊,光填这些坑就要浪费好多学习者的时间。所以总结如上,希望大家少走弯路。

尊重知识产权,转载请注明并复制本段,一元复始技术论坛原创http://www.1rmb.net.


如果对你有帮助,请点赞或留言。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|一元网络论坛

GMT+8, 2024-12-22 18:32 , Processed in 0.078736 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表