मेरा nginx config फाइल इस तरह है:
server {
listen 80;
listen 443 ssl;
server_name XXX.com;
error_log /log/nginx/xxx.com_error.log;
access_log /log/nginx/xxx.com_access.log main;
root /data/www/;
index index.php index.html index.htm;
location ~ \.php$ {
add_header X-Frame-Options SAMEORIGIN;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
निम्नलिखित को संतुष्ट करने के लिए हमें nginx को कॉन्फ़िगर करने की आवश्यकता है:
1 / यदि url में उपसर्ग नहीं है "/api/mobile/index.php",and अनुरोध का पोर्ट 80 है, तो इसे https पर पुनर्निर्देशित करें 2 ur यदि url में उपसर्ग है" /api/mobile/index.php",just पर जाएं
इसलिए मैं कॉन्फ़िगर फ़ाइल में सामग्री जोड़ता हूं:
location ~ ^(?!/api/mobile/index\.php).*$ {
if ($server_port = "80") {
return 301 https://$server_name$request_uri;
}
rewrite /* $server_name$reqeust_uri last;
}
अब विन्यास फाइल सामग्री है:
server {
listen 80;
listen 443 ssl;
server_name XXX.com;
error_log /log/nginx/xxx.com_error.log;
access_log /log/nginx/xxx.com_access.log main;
root /data/www/;
index index.php index.html index.htm;
location ~ ^(?!/api/mobile/index\.php).*$ {
if ($server_port = "80") {
return 301 https://$server_name$request_uri;
}
rewrite /* $server_name$reqeust_uri last;
}
location ~ \.php$ {
add_header X-Frame-Options SAMEORIGIN;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
अनुरोध से पहले स्थान से मेल खाता है, दूसरे स्थान से मेल नहीं खाएगा।
इसका मतलब है कि ये अनुरोध php cgi के माध्यम से नहीं जा सकता है।
क्या कोई है जो समस्या को हल करना जानता है?