在 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 部分添加一个块。