2017-01-12 89 views
1

最近我們用SSL保護了我們的應用程序。網站和郵遞員自動重定向到https並正常工作。但移動設備工作不一樣。在移動設備301中,響應不會重定向到新的url。我怎樣才能阻止移動請求重定向,並讓他們以同樣的方式工作? #卡住#SOS如何停止重定向移動請求nginx燒瓶?

server { 
    listen 443 default ssl; 

    # ssl on; 
    ssl_certificate /etc/path/myfile.pem; 
    ssl_certificate_key /etc/path/myfile.pem; 

    server_name example.com; 

    location/{ 
     include uwsgi_params; 
     uwsgi_pass unix:/path/myfile.sock; 
    } 
} 

server { 
    listen 80; 
    server_name example.com; 
    set $mobile_rewrite do_not_perform; 

    if ($http_user_agent ~* '(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino') { 
     set $mobile_rewrite perform; 
    } 

    # Do not redirect mobile device requests 
    if ($mobile_rewrite = perform){ 
     return http://$server_name$request_uri; 
    } 
    return 301 https://$server_name$request_uri; 
} 
+0

告訴我們更多關於您的設置。你在用nginx嗎?你阻止了80端口嗎? – AArias

+0

@AArias添加配置文件。不,我們沒有阻止80端口,但我們將傳入的請求重定向到443. –

+0

至於你我創建循環 - 你重定向移動到同一個網址,它再次嘗試連接到相同的網址,再次檢查它是否是移動的等,你應該重定向其他'如果($ mobile_rewrite!=執行){返回301 https:// $ server_name $ request_uri}'和下面放置'位置/ {...}' – furas

回答

1

只要避免這種過多的用戶代理和簡單的嘗試像

if ($http_user_agent ~ 'Android | iPhone') { 
     set $mobile_rewrite perform; 
    } 
+0

更改用戶代理工作。 ! –