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 的資料夾裡