伺服器中怎麼去掉index.php

2022-12-19 14:00:49

伺服器中去掉index.php的方法:1、開啟php.ini檔案,更改內容為「cgi.fix_pathinfo=1」;2、修改對應虛擬主機的組態檔;3、將「include enable-php.conf;」替換為「include enable-php-pathinfo.conf;」;4、去掉index.php,重新啟動lnmp即可。

Linux系統運維及專案正式上線:進入學習

本教學操作環境: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

f7cbf4eecb8465972b906bee2207ce6.jpg

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/組態檔

3e397492231dfd6daaa3bb3fa7ba80f.jpg

windows中

30f630f820f591217ff419e85e9ba64.jpg

注意: 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的詳細內容,更多請關注TW511.COM其它相關文章!