我一直在努力尋找解決方案,我有一個問題: 我需要重定向所有HTTP請求到https,除了特定位置下的特定頁面。 我有以下幾點:Nginx重定向到https問題
server {
listen 80;
listen 443 ssl;
server_name myserver;
root /var/www/example.org/htdocs;
index index.html;
.
.
}
我不能使用:
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name my.domain.com;
.
.
}
我發現here
一個很好的解決方案與解決方案的問題是,重定向進入不定式循環,解決方案是類似的,在我的變化之後:
map $uri $example_org_preferred_proto {
default "https";
~^/post/ "http";
}
server {
listen 80;
listen 443 ssl;
server_name example.org;
root /var/www/example.org/htdocs;
if ($example_org_preferred_proto = "https") {
return 301 $example_org_preferred_proto://example.org$request_uri;
}
}
我理解這個問題的邏輯:
我得到這樣一個請求:http://wwww.example.com/test - >重定向到https://wwww.example.com/test
現在我得到這樣一個請求:https://wwww.example.com/test - >重定向到https://wwww.example.com/test
現在我收到如下請求:https://wwww.example.com/test - >重定向到https://wwww.example.com/test並進入循環....
我需要一種方法來重定向一次後停止。
與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 刪除 - 從帖子)。順便說一句,它的「提前致謝」,而不是「感謝先進」 – 2015-05-01 04:37:48