not - nginx: एक यूआरएल-पैटर्न को छोड़कर, http से https तक सबकुछ रीडायरेक्ट करें




अपाचे सर्वर (2)

अगर आईफ्रेम पेज हमेशा एक ही निर्देशिका में होते हैं, तो साधारण उपसर्ग स्थान का उपयोग किया जा सकता है।

server {
    listen 443;

    location /l/ {  # redirect https iframe requests to http server
        return 301 http://$server_name$request_uri;
    }
    # ...
}

server {
    listen 80;

    location / {  # the default location redirects to https
        return 301 https://$server_name$request_uri;
    }

    location /l/ {}  # do not redirect requests for iframe location
    # ...
}

मेरे पास एक वेबसाइट है जो केवल एक यूआरएल-पैटर्न को छोड़कर HTTPS पर पहुंच योग्य होनी चाहिए (क्योंकि मेरे पास कुछ पेज http-iframe हैं और मैं सुरक्षा चेतावनियों से बचना चाहता हूं)

E.g. this pages should be redirected to https:
http://example.com
http://example.com/a/this-is-an-article
http://example.com/v/this-is-a-video

This pages should not be redirected to https (or should be redirected form https to http)
http://example.com/l/page-with-unsafe-iframe
http://example.com/l/other-page-with-unsafe-iframe

आप मानचित्र और सरल रीडायरेक्ट नियमों का उपयोग कर सकते हैं, उदाहरण के लिए:

map $uri $redirect_https {
    /l/page-with-unsafe-iframe         0;
    /l/other-page-with-unsafe-iframe   0; # you can use regex here
    default                            1;
}

server {
    listen 443;

    if ($redirect_https = 0) {
       return 301 http://$server_name$request_uri;
    }

    # other code
}
server {
    listen 80;

    if ($redirect_https = 1) {
       return 301 https://$server_name$request_uri;
    }

    # other code
}

मुझे जिक्र करना चाहिए कि 301 रीडायरेक्ट स्थायी पुनर्लेखन के विपरीत एक अच्छा अभ्यास है।





nginx