插件窝 干货文章 tp5怎么去除index.php

tp5怎么去除index.php

strong index span fastcgi 674    来源:    2024-10-27
tp5去除index.php的方法:1、使用“\think\url::root('/');”;2、修改htaccess配置,代码如“ rewritecond %{request_filename}...”;3、修改nginx配置即可。

 环境:win10 + php7.1 + nginx1.2 + ThinkPHP5 + Dell G3电脑

tp5怎么去除index.php?

TP5 去除url中 index.php 方法

在使用 ThinkPHP5 过程中,用 url 函数生成链接地址时,地址中产生了 index.php

立即学习“PHP免费学习笔记(深入)”;

  例:我们要生成一个 /home/news/list.html 的地址,结果生成的地址是 /index.php/home/news/list.html

在手册中 URL 生成篇有介绍:

  

   还可以写成:

\think\Url::root('/');

其它配置:

  .htaccess配置 (nginx 可忽略此文件)

<ifmodule>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</ifmodule>

 

   nginx配置 

server{
    listen 80;#监听端口
    server_name www.demo.com;#域名
    index index.html index.htm;
    root D:/wnmp/demo/public;
    location / {
        index  index.html index.htm index.php;
        #autoindex  on;
             
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=/$1 last;
        }
    } 
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
        expires 30d;
        # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
        expires       max;
        log_not_found off;
        access_log    off;
    }
    error_page   500 502 503 504  /50x.html;
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        #下面两句是给fastcgi权限,可以支持 ?s=/module/controller/action的url访问模式
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        #下面两句才能真正支持 index.php/index/index/index的pathinfo模式
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
}

推荐学习:《thinkphp教程》