我試圖讓這個重寫規則的工作:nginx重寫規則 - 似乎重定向而不是顯示內容?
rewrite ^/booking/(.*)/([0-9]+).ics$ /cgi-bin/links/booking/ical.cgi?room_id=$2&who=$1 last;
的ical.cgi腳本只是簡單地打印出的iCal該用戶的內容。該腳本在輸出方式上非常簡單。首先我們打印出標題:
print $IN->header('text/calendar');
...然後只是打印出iCal值。這個工程我們的舊服務器(與Apache)的罰款,但由於某種原因,我得到這樣的情況我們新的nginx服務器上:
然後,如果你下載它,該文件被保存爲ical.cgi
,而不是foo.ics
。
我在做什麼錯?
FWIW,這是我的主力位置塊已設置的CGI腳本:
location ~ \.cgi$ {
gzip off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8181;
}
腳本實際上正常工作(在下載的文件是什麼,我期待的內容 - 但是問題是它被寫成ical.cgi文件名,而不是foo.ics)
感謝:;我將在這裏離開這個崗位,以防萬一它可以幫助別人)(雖然我有點被噓,噓embaressed)
我做固定它答覆。是的,我們有一個cgi的反向代理設置(去apache2)。我已經更新了我的問題。這真的很奇怪,因爲我有其他規則工作正常(他們保存用戶所在的URL,但顯示從cgi腳本輸出的內容) –
啊,現在我覺得很愚蠢!我使用的是http:// url,但後來有一條規則將所有/ booking /位置都轉換爲https - 所以它在處理的是:'rewrite(。*)https:// $ host $ 1 last; '...因此打破它!咄 –