nginx - 如何用重新規則去掉URL 中 .php
PHPz
PHPz 2017-05-16 17:03:43
0
1
908

ThinkPHP 開啟REWRITE模式時,如何利用 Apache 、Nginx 重寫規則,
去掉 http://www.example.com/api.php/user/info/1880233 中的 .php
變成 http://www.example.com/api/user/info/1880233

求 apache 和 nginx 的重寫規則範例。

PHPz
PHPz

学习是最好的投资!

全部回覆(1)
过去多啦不再A梦

不好意思,之前沒看清楚問題

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 ;
      set $path_info ;
  }
  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/ 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/ [QSA,PT,L]
</IfModule>

並把.htaccess檔放到 api.php 的資料夾裡

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!