Home > Article > Backend Development > How to remove index.php from the server
服务器中去掉index.php的方法:1、打开php.ini文件,更改内容为“cgi.fix_pathinfo=1”;2、修改对应虚拟主机的配置文件;3、将“include enable-php.conf;”替换为“include enable-php-pathinfo.conf;”;4、去掉index.php,重启lnmp即可。
本教程操作环境:windows10系统、php7.0版、DELL G3电脑
服务器中怎么去掉index.php?
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配置结束 ######################################################################## }
推荐学习:《PHP视频教程》
The above is the detailed content of How to remove index.php from the server. For more information, please follow other related articles on the PHP Chinese website!