2013-04-30 224 views
0

我重定向以下網址:nginx的重寫規則

http://wwww.domain.de/dynamic_subdir1/subdir2/subdir3/?querysting 

http://www.domoain.de/dynamic_subdir1/static_dir/subdir2/subdir3/file.php?querysting 

在我的配置:

location ^~ /subdir2/subdir3/ { 
    rewrite ^/(.+?)/subdir2/subdir3/ /$1/static_dir/subdir2/subdir3/file.php?$args break; 
} 

,但我得到八方通500內部錯誤並在錯誤日誌中我可以看到以下內容:

rewrite or internal redirection cycle while internally redirecting 

我的配置有什麼問題?

回答

0

我覺得你快到了。假設你正在試圖改寫(例如未發出HTTP redirect),嘗試固定您的正則表達式:

rewrite ^/(.+?)/subdir2/subdir3/$ /$1/static_dir/subdir2/subdir3/file.php?$args break; 

注意$在第一模式的結束。

+0

我認爲它實際上是需要錨定的位置。但是,這是一種爲路徑指定'index'的過於複雜的方式。 – Melvyn 2013-05-03 06:40:37