2013-05-15 44 views
1

我嘗試寫一些nginx的重寫規則爲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。

如何解決這個問題?

回答

0

我不認爲你需要做一個重寫規則,嘗試在服務器中添加一個根。
如果本網站使用某種URL重寫,那麼您需要添加這些內容,如果您需要幫助,請說明您希望重寫URL的方式,我會爲您提供幫助。

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

感謝您的建議,但上述問題僅僅是一個簡單的例子。其實,我還有其他一些要求不適合改變根源。 – SaltyEgg