Nginx重写被禁用?不能做一个简单的重写

时间:2018-04-08 10:07:10

标签: nginx

我在重写指令方面遇到了很多麻烦 - 似乎没有任何实际工作,所以我尝试制作最基本的重写样本:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    root /var/www/html;

    location / {
        rewrite ^/a$ /test.html break;
    }
}

我假设这会在http://localhost/a返回/var/www/html/test.html的内容,但它没有,它给我一个404. test.html上的权限设置正确,它可在http://localhost/test.html访问。我假设重写实际上是禁用的 - 但我在nginx.conf中找不到类似的东西。上面的设置文件是sites-available中的默认设置,除了将rewrite_log on;添加到nginx.conf文件之外,所有内容都是由Ubuntu(17.10)中的nginx 1.12.1包分发的。

日志不提供有用的信息,并且启用重写日志记录不会向日志添加额外信息。是的,我在每次编辑设置后都重新启动了nginx。

我一直在尝试各种组合,所以在这一点上我只是假设重写没有工作/启用?我在这里完全糊涂了 - 任何提示都会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

我不知道为什么将break更改为last使其有效。这让我感到困惑,因为在这种配置中我不希望在重写之后有任何处理。这是一个非常新鲜的安装,实际上还没有任何其他内容,我认为会干扰 - 所以必须有一些原因吗?如果有人有更好的答案,我会切换接受的,但现在这个'有效'。