Redirect 如何将nginx重定向到没有html头的非http
我正在尝试将nginx中的url重定向到非http协议,例如test://123456 当我去test.com/123456 我尝试了以下重写: 重写^/(.*)$test://$1永久性 但它的工作原理很奇怪,它添加了html/body头,这会弄乱我的代码,有没有办法不用html头,或者有其他推荐的重写方法Redirect 如何将nginx重定向到没有html头的非http,redirect,nginx,Redirect,Nginx,我正在尝试将nginx中的url重定向到非http协议,例如test://123456 当我去test.com/123456 我尝试了以下重写: 重写^/(.*)$test://$1永久性 但它的工作原理很奇怪,它添加了html/body头,这会弄乱我的代码,有没有办法不用html头,或者有其他推荐的重写方法 HTTP/1.1 301 Moved Permanently Server: nginx/1.1.19 Date: Tue, 30 Apr 2013 14:14:47 GMT Co
HTTP/1.1 301 Moved Permanently
Server: nginx/1.1.19
Date: Tue, 30 Apr 2013 14:14:47 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: test://123456
301永久搬迁
301永久搬迁
nginx/1.1.19
这并不奇怪,应该是这样的
指定要删除的实体应存在
10.3.2 301永久移动
新的永久URI应该由响应中的Location字段提供。除非请求方法是HEAD,否则响应的实体应该包含一个简短的超文本注释,并带有指向新URI的超链接
而且
10.3.3 302发现
临时URI应该由响应中的Location字段提供。除非请求方法是HEAD,否则响应的实体应该包含一个简短的超文本注释,并带有指向新URI的超链接
在此上下文中,应定义为:
这个词,或形容词“推荐”,意味着在特定情况下可能存在忽略特定项目的正当理由,但在选择不同课程之前,必须理解并仔细权衡其全部含义
答案取自
当然,您仍然可以这样做,一种可能是代理请求并将requests方法从GET改为HEAD。这应该确保只发送HTTP头 这是未经测试的,但它应该是一个良好的起点:
server {
listen 8080;
server_name localhost;
return 301 test://$request_uri;
}
server {
listen 80;
server_name example.com;
location / {
proxy_method HEAD;
proxy_pass http://localhost:8080;
}
}
也是出于对这方面的兴趣
server {
listen 8080;
server_name localhost;
return 301 test://$request_uri;
}
server {
listen 80;
server_name example.com;
location / {
proxy_method HEAD;
proxy_pass http://localhost:8080;
}
}