Nginx重定向某个网址(返回404)

时间:2015-04-08 06:17:34

标签: redirect nginx rewrite

如何为url创建重定向,返回404(以cms为单位)。使用nginx + php-fmp。

实施例。有一个类别/自动/有4页:

  1. /auto.html,
  2. /auto/page-2.html,
  3. /auto/page-3.html,
  4. /auto/page-4.html
  5. 其他网址(/auto/page-5.html ... /auto/page-200.html)如何将301返回到/auto.html?

    此代码,返回301为所有网址(/auto/page-2.html,/auto/page-5.html ...)。错误是什么?

    location ~* /(auto)/page-\d+\.html {
      error_page 404 = @page;
    }
    location @page {
      rewrite /(.*?)/page-\d+\.html http://site.ru/$1.html permanent;
    }
    error_page 404 =404       /404.html;
    location ~* \.php$          {
      include                   fastcgi_def;
    }
    location /                  {try_files $uri /index.php?$args;}
    

1 个答案:

答案 0 :(得分:0)

溶液

error_page 404 =404         /404.html;
  location ~* \.php$          {
    include                   fastcgi_def;
    include                   add/cachephp;
    if ($request_uri ~ /(.+)/page-\d+\.html) {
     error_page 404 = @page;
    }
    fastcgi_intercept_errors on;
  }
  location /                  {try_files $uri /index.php?$args;}

  location @page {
    if ($request_uri ~ /(.+)/page-\d+\.html) {return 301 /$1.html;}
    return 410;
  }