nginx尾随斜线问题

时间:2010-04-23 20:01:08

标签: configuration nginx

我正在google搜索并找到了几个解决方法,但你必须定义每个目录。

  • 关于Apache:example.com/hi - > example.com/hi /
  • 关于nginx:example.com/hi - > Firefox无法在example.com:8888
  • 建立与服务器的连接

其中8888是Apache正在侦听的内容(nginx:80 - > localhost:8888)

任何想法如何解决这个问题并让它像文件夹一样正常转发?

4 个答案:

答案 0 :(得分:2)

我有一个类似的问题,清漆和nginx(端口80上的清漆代理到nginx监听8080)并且需要添加“port_in_redirect off;” ... server_name_in_redirect需要保持运行,因此nginx知道它正在处理哪个主机。

答案 1 :(得分:1)

以下应该可以解决问题,但需要更多的思考/工作,因为一次只能使用一个位置块:

location ~ ^(.*[^/])$ {
  if (-d $document_root/$1) {
    rewrite ^(.*)$ $1/ permanent;
  }
}

(未经测试)

答案 2 :(得分:1)

您可以在服务器部分设置“server_name_in_redirect off”

server{
  listen 80 default;
  server_name localhost;
  server_name_in_redirect off;

 ...
 ...
}

那就行了; - )

HTH。

编辑:只需格式化。

答案 3 :(得分:0)

这是最适合我的魔力:

try_files $uri $uri/ @redirect;
location @redirect {
    if ($uri !~ '/$') {
        return 301 $uri/$is_args$args;
    }
}

此处的'if'语句是安全的:http://wiki.nginx.org/IfIsEvil