重写目录树

重写目录树

我想使用 提供静态文件nginx。我通过 获得静态页面wget,目录树的根是页面协议。例如http://www.example.com/

http
└── www.example.com
    └── index.html

我希望能够提供如下页面: http://website.com/page/http://www.example.com/ 渲染http://website.com/page/http/www.example.com/

nginx这个的配置是什么?

更新:我试过了:rewrite ^(.+)://(.+)$ $1/$2 last;但是没有用

答案1

如果我理解正确的话,那么您很可能正在寻找像 Squid 这样的正向代理,Nginx 是反向代理,并不是真正适合这种情况。

答案2

正如您在location指令文档:匹配是针对规范化的 URI 执行的,在解码以“%XX”形式编码的文本、解析对相对路径组件“。”和“..”的引用以及将两个或多个相邻的斜线压缩为一个斜线之后。

server您可以使用以下命令阻止 nginx 在块级别合并斜杠merge_slashes,尽管我建议谨慎做这样的事情并且通常不建议这样做。

您的正则表达式与规范化的 URI 不匹配。您需要使用:

rewrite ^(.+):/(.+)$ $1/$2 last;

作为补充建议,您可能需要查看正则表达式,用.更具体的类或集合替换通用的万能字符,以便更好地定义其行为。

相关内容