nginx 使用虚拟文件夹将 TLD 重定向到 TLD (example.com => example.com/test)

nginx 使用虚拟文件夹将 TLD 重定向到 TLD (example.com => example.com/test)

我正在运行 nginx,在配置文件中我需要始终将域 example.com 重定向到 example.com/test。我尝试了各种方法来实现这一点,但总是出现重定向错误。

编辑:值得一提的是,我仅有的希望 example.com 重定向到 example.com/test。我不希望 example.com/something 的 URL 中包含 /test。

正确的方法是什么?

这是我当前 nginx.conf 的片段:

server {
  server_name example.com www.example.com;
  location / {
    rewrite ^.+ /test permanent;
  }
}

server {
  listen 80;
  server_name www.example.com example.com;
  location / {
    root /var/www/apps/example/current/public;
    passenger_enabled on;
    rails_env production;
  }
}

答案1

我不记得了,但不知何故是正确的方法:

server {
    server_name  example.com;
    rewrite ^/$ http://www.example.com/test   permanent;
}

答案2

samarudge 是正确的 - 您应该只有一个server块。
尝试将rootpassenger_enabledrails_env放在 正下方server(甚至http

server {
  listen 80;
  server_name www.example.com example.com;
  root /var/www/apps/example/current/public;
  passenger_enabled on;
  rails_env production;

  location / {
      rewrite ^.+ /test permanent;
  }
}

相关内容