nginx:[警告] 服务器名称包含可疑符号,且域名重定向较长

nginx:[警告] 服务器名称包含可疑符号,且域名重定向较长

在 Nginx 中重定向两个长域 URL 的最佳方法是什么,我想在两个域之间配置重定向,如下所示:

我确信之前已经有人问过这个问题,但我找不到有效的解决方案。

original link:

https://qwerty.test.com/education/7/abc-science

New link

https://www.test.com/education/7/abc-science

我尝试过这个:

server {
    listen 80;
    listen 443 ssl;
    server_name qwerty.test.com/education/7/abc-scienc;
    return 301 $scheme://www.test.com/education/7/abc-science$request_uri;
}

仍然收到一些错误

nginx: [warn] server name "education/7/abc-scienc
" has suspicious symbols in /etc/nginx/conf.d/redirect.conf:9

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重复问题为:https://stackoverflow.com/questions/74101316/long-url-diffrent-domain-redirect-nginx-issue

这些改变对我有用吗:

server {
    listen 80;
    server_name www.test.com;
    #old url
    location /education/7/abc-science {
        # Unique handler for the URL you want to redirect.
        # new url
        return 301 $scheme://www.test.com/education/7/abc-science;
    }
}

或者我需要在位置块中添加 $request_uri;

我是否需要使用这种方式从旧 URL 重定向到新 URL?

location = /content/unique-page-name {
  return 301 /new-name/unique-page-name;
}

有人能帮我解决这个问题吗?这是怎么回事?

任何帮助都非常感谢!谢谢!

答案1

nginx 文档表示server_name虚拟主机的虚拟服务器名称(域名)。

该文档还解释了允许什么类型的输入。

您正在尝试添加 URL 而不是域,这就是配置无效的原因。

您需要location为 URL 的 URI 部分添加一个块。

相关内容