ThinkPHP在Apache和Nginx下去除index.php方法

Posted 与f

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP在Apache和Nginx下去除index.php方法相关的知识,希望对你有一定的参考价值。

 

由于项目需要,用Thinkphp开发的程序链接要去除index.php下面说下如何解决。
一.nginx方法

由于nginx不支持PATH_INFO,所以需要进入linux终端找到nginx 的配置文件nginx.conf添加如下代码:

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

使用如下:

server
  { listen 80;
    server_name www.blhere.com; index index.html index.htm index.php;
    root  /data/htdocs/wwwroot/www; #limit_conn   crawler  20; location /
    { if (!-e $request_filename)
        {
            rewrite ^(.*)$ /index.php?s=$1 last; break;
        }
    }

    location ~ .*\\.(php|php5)?$
    { #fastcgi_pass  unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }

    location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      expires 30d;
    }

    location ~ .*\\.(js|css)?$
    {
      expires 1h;
    }
}

 

二.apache

[ Apache ]

  1. httpd.conf配置文件中加载了mod_rewrite.so模块
  2. AllowOverride None 将None改为 All
  3. 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下
    <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>

     

有时候index.php后面加加? ---->index.php?/ 

 

参考:https://www.kancloud.cn/manual/thinkphp5_1/353955

转: https://www.cnblogs.com/behindman/p/8667731.html

以上是关于ThinkPHP在Apache和Nginx下去除index.php方法的主要内容,如果未能解决你的问题,请参考以下文章

nginx下怎么支持THinkPHP

thinkphp5去除index.php的几大方式,根治各种不行

thinkphp框架 url 去除index.php

使Nginx支持ThinkPHP框架

如何让nginx支持ThinkPHP框架

thinkphp5在Linux下Nginx配置问题解决