जब निर्देशिका में फ़ाइल मौजूद न हो तो Nginx सभी को फिर से लिखना


-1

मेरे नगीने में कोड का निम्नलिखित भाग है:

server {    
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/ssl-renmind.net.conf;
include snippets/ssl-params.conf;

...



    rewrite ^/manage/GO/(.+)$ /gatherOpinionAdmin/$1 last;
    rewrite ^/manage/CT/(.+)$ /couponTracksAdmin/$1 last;
    rewrite ^/manage/CH/(.+)$ /contestHeroAdmin/$1 last;
    rewrite ^/manage/DC/(.+)$ /distributeContentAdmin/$1 last;
    rewrite ^/manage/PD/(.+)$ /productsAdmin/$1 last;
    rewrite ^/manage/PP/(.+)$ /pitchPageAdmin/$1 last;

    rewrite ^/([^/]+)/GO/(.+)$ /gatherOpinionUser/$2?currentFolder=$1 last;
    rewrite ^/([^/]+)/CH/(.+)$ /contestHeroUser/$2?currentFolder=$1 last;
    rewrite ^/([^/]+)/CT/(.+)$ /couponTracksUser/$2?currentFolder=$1 last;
    rewrite ^/([^/]+)/DC/(.+)$ /distributeContentUser/$2?currentFolder=$1 last;
    rewrite ^/([^/]+)/PD/(.+)$ /productsUser/$2?currentFolder=$1 last;


    if (!-e $request_filename){
        #rewrite ^/([^/]+)(.*+)$ /genUser/$2?currentFolder=$1 last;
}
}

मैं इसे जोड़ने की कोशिश कर रहा हूं:

    location /webmin/ {
            proxy_pass https://localhost:10000/;
        proxy_redirect https://$host:10000/ /webmin/;
            proxy_set_header Host $host;
        }

जो केवल तभी काम करता है जब मैं ऊपर के अंतिम पुनर्लेखन को हटाता हूं जो सभी गैर-मौजूदा फाइलों को फिर से लिखता है (वर्तमान में टिप्पणी की गई है)। अगर यह स्थान / वेबमिन / है, तो मैं शायद सभी पुनर्लेखनों को छोड़ कर कैसे पूरा करूंगा। / webmin / वास्तव में एक फ़ाइल के रूप में मौजूद नहीं है।

जवाबों:


1

आपको निम्नलिखित सेटअप का उपयोग करना चाहिए:

location / {
    if (!-e $request_filename) {
        rewrite ^/([^/]+)(.*+)$ /genUser/$2?currentFolder=$1 last;
    }
}

location /webmin {
    proxy_pass https://localhost:10000/;
    proxy_redirect https://$host:10000/ /webmin/;
    proxy_set_header Host $host;
}

यहां महत्वपूर्ण हिस्सा location /ब्लॉक को जोड़ना है , ताकि नग्नेक्स locationलुकअप का ठीक से उपयोग करेगा ।

ifबयान से छुटकारा पाना भी संभव हो सकता है , जिसे हमेशा पसंद किया जाता है


0

ठीक है, हर बार आखिरकार मैं सामान बाहर निकालने में मदद के लिए कहता हूं।

इसमें डाल: अगर ($ request_uri ~ (/ webmin)) {ब्रेक; }

समस्या को हल करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.