Nginx 将文件夹重定向到子域

Nginx 将文件夹重定向到子域

我正在尝试在 Nginx 上配置从文件夹到子域的重定向。我已经尝试过Nginx 重定向:文件夹到外部域Nginx 重写规则(子目录到子域)nginx:将子文件夹重定向到子域名. 什么都不起作用。

问题很简单。我有一个配置了以下行的 Apache:

RedirectPermanent /asdhttp://asd.domain.com/

现在,我尝试在 Nginx 上复制此内容。我尝试过的每个配置都存在同样的问题:

如果我去http://www.domain.com/asd/,他们把我重定向到http://asd.domain.com/asd/

如果我去http://www.domain.com/asd/index,它们会重定向到http://asd.domain.com/index

在所有情况下,我都需要删除子文件夹,对我来说,第一个是不正确的。在第一种情况下,我该如何配置 nginx,转到http://asd.domain.com/

规则在 root 参数之后应用。配置如下:

server {
  listen --
  server_name --
  root --
  <> INSERT RULE HERE
  access_log --
  error_log --
  include - (A file with php configurations).
}

一些已尝试规则的示例:

重写 ^/asd/(.*)http://asd.domain.com/1 美元永久;

重写 ^/asd(.*)http://asd.domain.com/1 美元永久;

重写 ^/asd(.*)http://asd.domain.com1 美元永久;

位置 ^~ /asd/ { 重写 ^/asd/(.*)http://asd.domain.com/$1 永久;}

位置 ^~ /asd/ { 重写 ^/asd(.*)http://asd.domain.com/$1 永久;}

位置 ^~ /asd/ { 重写 ^/asd(.*)http://asd.domain.com$1 永久;}

此外,位置变化为“位置 ~ ^/asd/(。)”或“位置~^/asd(.)”

谢谢,

答案1

我觉得你和rewrite ^/asd/(.*) http://asd.domain.com/$1 permanent;

根据文档

如果替换字符串包含新的请求参数,则先前的请求参数将附加在其后。如果不希望出现这种情况,请在替换字符串末尾放置一个问号,以避免附加这些参数

但你可能需要添加一个,只是为了练习结束$像这样:

rewrite ^/asd/(.*)$ http://asd.domain.com/$1? permanent;

相关内容