Nginx之php框架常见伪静态rewrite配置

新建网站难免会重新配置 nginx 的 rewrite,这里记录下常见的问题及配置。

备注两个可以从 Apache(.htaccess)转 Nginx 的网址:
https://www.winginx.com/en/htaccess
https://www.bt.cn/Tools

如果你配置好 rewrite 后仍然访问异常,请注意检查 nginx 的fastcgi_split_path_info 参数配置,如下

#写法一 非贪婪模式匹配
fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;

#写法二 贪婪模式匹配
fastcgi_split_path_info  ^(.+\.php)(/.*)$;
  • thinkphp
location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;
        break;
    }
}
  • laravel
location / {  
    try_files $uri $uri/ /index.php$is_args$query_string;  
 }
  • wordpress
location / {
    try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;
  • zblog
if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
    rewrite (.*) /index.php;
}
  • typecho
if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}
  • emlog
location / {
    index index.php index.html;
    if (!-e $request_filename){
        rewrite ^/(.*)$ /index.php last;
    }
}
  • dedecms
rewrite "^/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last;
rewrite "^/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last;
rewrite "^/view-([0-9]+)-1\.html$" /plus/view.php?arcID=$1 last;
rewrite "^/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?aid=$1&pageno=$2 last;
rewrite "^/plus/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last;
rewrite "^/plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last;
rewrite "^/plus/view-([0-9]+)-1\.html$" /plus/view.php?arcID=$1 last;
rewrite "^/plus/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?aid=$1&pageno=$2 last;
rewrite "^/tags.html$" /tags.php last;
rewrite "^/tag-([0-9]+)-([0-9]+)\.html$" /tags.php?/$1/$2/ last;
Author: thinkwei

2 thoughts on “Nginx之php框架常见伪静态rewrite配置

  1. 您好,我来自V2ex,希望能跟您交换友情链接。

    我的博客也基本上是技术类文章,全部都是原创内容。

    希望得到回复,我的博客地址是:https://www.fi-ads.com/

    已经添加您的链接到我的友情链接页面。

    非常感谢!

回复 Future iDeal 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注