服务器中如何去掉index.php

76次阅读
没有评论

共计 2629 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章主要介绍了服务器中如何去掉 index.php 的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇服务器中如何去掉 index.php 文章都会有所收获,下面我们一起来看看吧。

服务器中去掉 index.php 的方法:1、打开 php.ini 文件,更改内容为“cgi.fix_pathinfo=1”;2、修改对应虚拟主机的配置文件;3、将“include enable-php.conf;”替换为“include enable-php-pathinfo.conf;”;4、去掉 index.php,重启 lnmp 即可。

url 中去掉 index.php 方法:

THINKPHP 官方论坛和网络上很多 NGINX 配置教程不是太完善的。我一直比较喜欢使用 lnmp.org 配置服务器环境。所以本文将介绍 LNMP 配置 NGINX 支持 THINKPHP  PATHINFO 模式。

thinkphp 的 url 访问:http://serverName/index.php(或者其它应用入口文件)/ 模块 / 控制器 / 操作 /[参数名 / 参数值 …],这个需要支持 pathinfo,Apache 默认支持,而 Nginx 不支持。

1,修改 PHP.INI 支持 PHPINOF

PHP 配置文件:/usr/local/php/etc/php.ini

更改 php.ini

找到:cgi.fix_pathinfo=0

更改为:cgi.fix_pathinfo=1

2. 修改 nginx 对应配置文件

LNMP 上各个版本 pathinfo 各个版本的设置基本一样:

lnmp v1.1 上,修改对应虚拟主机的配置文件

去掉 #include pathinfo.conf 前面的 #,把 try_files $uri =404; 前面加上# 注释掉。

1.2, 1.3 上,修改对应虚拟主机的配置文件

将 include enable-php.conf; 替换为 include enable-php-pathinfo.conf;

修改 pathinfo 需要重启 nginx 生效。

去掉 index.php

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

linux 中 /usr/local/nginx/conf/ 配置文件

windows 中

注意:root 配置要定位到 yyyy 的位置,不一定是 localhost

  D:/xxxx/localhost/yyyy

3. 重启 lnmp 即可。。

lnmp restart

4. 设置 url_mode =2

// -----------URL 伪静态后缀设置 ----------
 URL_MODEL = 2 , // 0 (普通模式); 1 (PATHINFO  模式); 2 (REWRITE  模式); 3 (兼容模式)  默认为 PATHINFO  模式 

注:有些文章提到 nginx 不支持 pathinfo,需要在 config 文件中设置。

我没遇到过!下面是别人的解决方法,仅供参考。

 location ~ \.php { # 去掉 $
 root H:/PHPServer/WWW;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_split_path_info ^(.+\.php)(.*)$; # 增加这一句
 fastcgi_param PATH_INFO $fastcgi_path_info; # 增加这一句
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }

还有人是这么配置的:

server {
listen 80;
root *****************/public_html;
server_name **************.com;
index index.html index.php index.htm;
error_page 400 /errpage/400.html;
error_page 403 /errpage/403.html;
error_page 404 /errpage/404.html;
error_page 503 /errpage/503.html;
location ~ \.php(.*)$ {
fastcgi_pass unix:/tmp/php-70-cgi.sock;
fastcgi_index index.php;
fastcgi_param script_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
fastcgi_param PATH_INFO $2;
include fcgi.conf;
########################################################################
pathinfo 配置开始
########################################################################
set $path_info  
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~  ^(.+\.php)(/.+)$ ) {
set $real_script_name $1;
set $path_info $2;
fastcgi_param script_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
########################################################################
pathinfo 配置结束
########################################################################
}

关于“服务器中如何去掉 index.php”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“服务器中如何去掉 index.php”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-12发表,共计2629字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)