【问题标题】:How to prevent nginx rewriting again after adding index file?添加索引文件后如何防止nginx再次重写?
【发布时间】:2013-05-15 13:11:52
【问题描述】:

我正在尝试为 Web 服务器编写一些 nginx 重写规则,其中一个很简单:

index index.html;
...
rewrite ^/(.*)$ /web/$1 break;

此规则在 URI 前添加 /web。它适用于www.mydomain.com/somefile 之类的查询,并返回/docroot/web/somefile 的内容。

但是,如果我查询www.mydomain.com/somedir/,这条规则将应用两次:首先,URI 被重写为/web/somedir/。然后nginx根据index index.html改成/web/somedir/index.html。在此之后,将再次应用重写规则并获得/web/web/somedir/index.html 的URI。

如何解决这个问题?

【问题讨论】:

    标签: nginx rewrite


    【解决方案1】:

    我认为您不需要为此执行重写规则,请尝试在服务器中添加根。
    如果本网站使用某种 URL 重写,那么您需要添加这些,如果您需要帮助,请说明您希望如何重写 URL,我会帮助您。

    server {
        server_name example.com;
        root /docroot/web; #make sure to put web
        index index.html;
        location / {
            try_files $uri $uri/ =404;
        }
    }
    

    【讨论】:

    • 感谢您的建议,但上述问题只是一个简化示例。实际上,我还有其他几个要求不适合更改根目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多