Heim > Fragen und Antworten > Hauptteil
So verwenden Sie Apache und Nginx, um Regeln neu zu schreiben, wenn ThinkPHP den REWRITE-Modus aktiviert,
Entfernen Sie die .php in http://www.example.com/api.php/user/info/1880233
Wird zu http://www.example.com/api/user/info/1880233
Suche nach Beispielen für Rewrite-Regeln für Apache und Nginx.
过去多啦不再A梦2017-05-16 17:05:43
不好意思,之前没看清楚问题
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 的文件夹里