TP5 去除url中 index.php 方法

来源:博客园 分类: 文章浏览史 发布时间:2022-02-26 21:06:04 最后更新:2022-02-26 浏览:148
转载声明:
本文为摘录自“博客园”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2022-02-26 21:06:04

 环境:win10 + php7.1 + nginx1.2 + ThinkPHP5 

 

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

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

 

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

  

  

 还可以写成:

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

 

其它配置:

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

复制代码
<IfModule mod_rewrite.c>
  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;
    }
}
复制代码

  

 参考:

  http://www.thinkphp.cn/topic/59367.html

  https://www.kancloud.cn/manual/thinkphp5/118041

  https://www.kancloud.cn/manual/thinkphp5_1/353977

 

 

 

php技术微信