重写目录树

我想用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 /

这是什么nginxconfiguration?

更新:我试过这个: rewrite ^(.+)://(.+)$ $1/$2 last; 但它不起作用

如果我理解你是正确的,那么你很可能正在寻找像Squid这样的代理服务器,Nginx是一个反向代理服务器,并不适用于这种情况。

正如你可以在location指令docs中看到的那样: 在对“%XX”forms编码的文本进行解码之后,对标准化的URI执行匹配,parsing对相对path组件“。”和“..”的引用,并且可能的压缩两个或多个相邻的斜线成一条斜线。

您可以防止nginx在server块级别合并斜杠merge_slashes ,虽然我会build议谨慎做这样的事情,并会一般build议反对它。

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

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

作为一个补充build议,你可能想看看你的正则expression式来replacegenerics. 通过更具体的类或集来捕捉所有的字符,所以它的行为被更好地定义。