有效重写的状态404,预期的索引处理程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有效重写的状态404,预期的索引处理程序相关的知识,希望对你有一定的参考价值。

location /有一个@rewriteIt但有些东西是worg ......

全新安装nginx到UBUNTU 16 LTS,所有apt标准。

NGINX无视我的重写,为什么?如何修复example.com/foo重定向到test.php

测试状态和动态页面,除了重写之外都很好:

使用脚本

example.com

server {
        server_name example.com www.example.com;

        root /var/www/example.com/;
        index  index.php index.html index.htm;

        location / {   # ignoring here?
                try_files $uri $uri/ @rewriteIt =404;
        }

        location  @rewriteIt {  # something wrong here?
                rewrite ^/?([a-zA-Z0-9-]+)/?$    test.php?obj=$1            last;
        }

        location ~ .php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

改为try_files $uri $uri/ @rewriteIt;时也一样。

默认

server {
        listen   80; ## listen for ipv4; this line is default and implied
        listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name localhost;
        location / {
                try_files $uri $uri/ =404;
        }

        location ~ .php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}
答案

命名位置需要是try_files语句的最后一个参数,替换=404术语。有关详细信息,请参阅this document

还有第二个错误。 nginx中的所有URI都以前导/开头,因此rewrite语句应指定/test.php?obj=$1作为目标。

以上是关于有效重写的状态404,预期的索引处理程序的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 错误:“(200-299)中的预期状态代码,得到 404”

为啥/在找到页面时 CodeIgniter 在哪里设置 404 http 状态?

MockMvc 响应返回 404,预期响应 201

jQuery AJAX GET/POST 请求在错误处理程序中返回 404,但从服务器发送了有效响应

Ajax---错误处理

对已禁用资源的操作的预期 HTTP 状态代码