我在重写指令方面遇到了很多麻烦 - 似乎没有任何实际工作,所以我尝试制作最基本的重写样本:
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。
我一直在尝试各种组合,所以在这一点上我只是假设重写没有工作/启用?我在这里完全糊涂了 - 任何提示都会有很大的帮助。
答案 0 :(得分:0)
我不知道为什么将break
更改为last
使其有效。这让我感到困惑,因为在这种配置中我不希望在重写之后有任何处理。这是一个非常新鲜的安装,实际上还没有任何其他内容,我认为会干扰 - 所以必须有一些原因吗?如果有人有更好的答案,我会切换接受的,但现在这个'有效'。