【问题标题】:How to strip the trailing URL in an nginx 404 redirect?如何去除 nginx 404 重定向中的尾随 URL?
【发布时间】:2015-12-07 20:49:07
【问题描述】:

我们有一个 nginx 服务器正在运行,默认 404 是通用 nginx 404。现在设置为使用此 sn-p 将所有页面重定向到索引页面:

error_page 404 =200 /index.html

似乎运行良好,但现在在重定向的主页上,您看到的是尾随 URL 而不是 TLD。

例子:

www.somesite.com/whereis404

应该重定向到

www.somesite.com

去掉

/whereis404

我不确定如何在重定向中去除尾随 url 等。有什么想法或者这在 nginx 中不可行吗?

【问题讨论】:

    标签: redirect nginx


    【解决方案1】:

    如果要更改地址栏,则需要执行外部重定向。通过指定相对 URI,nginx 默认执行内部重定向。有许多指令可以执行外部重定向,但是将 error_page 指令上的 URI 替换为 scheme主机名 将指示 nginx 进行外部重定向:

    error_page 404 =200 $scheme://$server_name/;
    error_page 404 =200 $scheme://$host/;
    

    如果您处于反向代理环境中,则最好使用第二种变体。这假设您定义了index,否则附加index.html

    【讨论】:

    • 感谢理查德的提示。都试过了,我的网站上没有。我仍在学习 nginx 的进出,所以不确定我是否将这些正确应用于 conf 文件。我今天会重新看一下,看看会发生什么。
    • @Valien 我很抱歉。在我的示例中,我错过了 :
    • 是的,它正在重定向,但不会删除尾随内容。所以不确定我做错了什么。将继续努力。
    • @Valien 确保重启nginx,因为它只会在重启时重新读取配置,并确保清除浏览器的缓存。
    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 2018-09-12
    • 2020-05-03
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    相关资源
    最近更新 更多