84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
ThinkPHP 开启REWRITE模式时,如何利用 Apache 、Nginx 重写规则, 去掉 http://www.example.com/api.php/user/info/1880233 中的的 .php 变成 http://www.example.com/api/user/info/1880233
求 apache 和 nginx 的重写规则示例。
学习是最好的投资!
不好意思,之前没看清楚问题
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 的文件夹里
不好意思,之前没看清楚问题
Nginx:
Apache:
还是参照这个链接里的介绍:http://doc.thinkphp.cn/manual/url_rewrite.html
但把代码改成如下这样:
并把.htaccess文件放到 api.php 的文件夹里