素材牛VIP会员
如何利用重新规则去掉URL 中 .php
 ji***ca  分类:ThinkPHP  人气:957  回帖:1  发布于6年前 收藏

ThinkPHP 开启REWRITE模式时,如何利用 Apache 、Nginx 重写规则,
去掉 http://www.example.com/api.php/user/info/1880233 中的的 .php
变成 http://www.example.com/api/user/info/1880233

求 apache 和 nginx 的重写规则示例。

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv6 码匠
这***2 学生 6年前#1

不好意思,之前没看清楚问题

Nginx:

location ~ .php {
  fastcgi_pass   127.0.0.1:9000;  #根据实际情况修改
  fastcgi_index  index.php;
  include        fastcgi_params;

  #这一段是让 Nginx 支持 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_FILENAME $document_root$real_script_name;
  fastcgi_param SCRIPT_NAME $real_script_name;
  fastcgi_param PATH_INFO $path_info;
}

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

Apache:
还是参照这个链接里的介绍:http://doc.thinkphp.cn/manual/url_rewrite.html
但把代码改成如下这样:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/api/(.*)$ api.php/$1 [QSA,PT,L]
</IfModule>

并把.htaccess文件放到 api.php 的文件夹里

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取