有效重写的状态404,预期的索引处理程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有效重写的状态404,预期的索引处理程序相关的知识,希望对你有一定的参考价值。
location /
有一个@rewriteIt
但有些东西是worg ......
全新安装nginx到UBUNTU 16 LTS,所有apt
标准。
NGINX无视我的重写,为什么?如何修复example.com/foo
重定向到test.php
?
测试状态和动态页面,除了重写之外都很好:
- 好的http://example.com
- BUG(不是404)http://example.com/foo
- 好的http://example.com/?foo
- 好的http://example.com/index.php
- 好的http://example.com/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 状态?