我正在尝试将帮助 URL 从 example/help 重写为 help.examplee.我尝试了很多配置 nginx 的方法,但是当我请求 example/help 时,出现了一会儿内容,然后它使用 help.examplee 重定向到主页> 网址.
I am trying to rewrite help URL from example/help to help.examplee. I tried many ways for configuring nginx but When I'm requesting example/help, for a moment content appears and then it redirect to home page with help.examplee url.
我在工作中使用了 nuxtjs v2.13.3 和 nginx.这是我的 nginx 配置:
I used nuxtjs v2.13.3 and nginx in my work. Here is my nginx conf:
不确定这是否正是您需要的,但是:
Not sure if this is doing exactly what you need but:
example/help/uri1/uri2 上的传入请求将被重定向到 help.example/help/uri1/uri2
An incomming request on example/help/uri1/uri2 will be redirected to help.example/help/uri1/uri2
在我们将请求代理到后端之前,我们正在重写 request_uri
Before we are proxying the request to our backend we are rewriting the request_uri
rewrite ^/help(.*)$/_nuxt$1 break;
这里我们将 /help/ 替换为 /_nuxt/.
Here we are replacing the /help/ with /_nuxt/.
这是我的测试配置:
server { listen 80; server_name example; location /help { #return 301 help.example$request_uri; rewrite ^/help(.*)$ /_nuxt$1 break; proxy_pass 127.0.0.1:3000/; } } server { listen 80; server_name help.example location / { rewrite ^/help(.*)$ /_nuxt$1 break; proxy_pass 127.0.0.1:3000/; } } server { #Fake Backend listen 3000; location /_nuxt { add_header "Content-Type" "text/html"; return 200 "$request_uri \n"; } }我的实验室要求
8080 = example 8081 = help.example 8082 = fake bakend (:*3000) root@deploy-VirtualBox:/etc/nginx/conf.d#curl -vL 192.168.137.129:8080/help/uri1/uri2; * Trying 192.168.137.129... * TCP_NODELAY set * Connected to 192.168.137.129 (192.168.137.129) port 8080 (#0) > GET /help/uri1/uri2 HTTP/1.1 > Host: 192.168.137.129:8080 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Server: nginx/1.19.3 < Date: Wed, 30 Sep 2020 17:12:59 GMT < Content-Type: text/html < Content-Length: 169 < Connection: keep-alive < Location: 192.168.137.129:8081/help/uri1/uri2 < * Ignoring the response-body * Connection #0 to host 192.168.137.129 left intact * Issue another request to this URL: '192.168.137.129:8081/help/uri1/uri2' * Found bundle for host 192.168.137.129: 0x55623c402020 [can pipeline] * Trying 192.168.137.129... * TCP_NODELAY set * Connected to 192.168.137.129 (192.168.137.129) port 8081 (#1) > GET /help/uri1/uri2 HTTP/1.1 > Host: 192.168.137.129:8081 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.19.3 < Date: Wed, 30 Sep 2020 17:12:59 GMT < Content-Type: text/html < Content-Length: 18 < Connection: keep-alive < /_nuxt/uri1/uri2 * Connection #1 to host 192.168.137.129 left intact更多推荐
反向代理将 url 重定向到子域
发布评论