2013-01-19 83 views
1

我有一個縮略圖類,它也接受外部主機。它的工作原理就像現在這個權利:nginx重寫規則缺少斜槓

http://mysite.com/resize/src=http://google.com/logo.png&w=50&h=50 

我想讓它乾淨URL以我這樣的「resize.mysite.com」子域名:

http://resize.mysite.com/400x200/http://google.com/logo.png 

我幾乎與此重寫規則做到了:

rewrite ^/([^x]*)x([^/]*)/(.*)$ /resize.php?w=$1&h=$2&src=$3 last; 

但它後發送「SRC」沒有第二個斜槓「HTTP:」和它會導致調整類錯誤,如:

http:/google.com/logo.png 
http://google.com/logo.png (what I expect) 

這是如何解決的?

回答

2

首先要記住的是,您的nginx配置文件特殊指令merge_slashes中的某處正在使用,這是真的嗎?如果是,並且您使用的是merge_slashes on,那麼您的所有請求都帶有雙斜槓或三重斜槓等等。

它可以解決您的問題,以設置指令merge_slashes off

+0

它工作:)我從來沒有設置它,但文件說它的默認值是「開」,所以它導致缺少斜線。謝謝。 – xecute

+0

但要小心,因爲'merge_slashes'可以在所有服務器配置上工作(所以每個特定域+端口的所有位置),有時會帶來一些安全問題。無論如何,高興我可以幫忙;) – emka86