server {
listen 80;
server_name pwta;
root html;
location /test/{
alias html/test/;
autoindex on;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
यह कॉन्फ़िगरेशन काम करता है। हालांकि, अगर location /test/
को प्रतिस्थापित किया गया है उदा। location /testpath/
यह काम नहीं करता है (कोई इनपुट फ़ाइल निर्दिष्ट नहीं है)। मैंने उपनाम निर्देश के स्पष्टीकरण पर आधार ग्रहण किया कि "स्थान" भाग गिरा दिया गया है और इस प्रकार /testpath/info.php
परिणामस्वरूप html/test/info.php
होगा।nginx alias + स्थान निर्देश
किसी भी सुझाव के लिए धन्यवाद।
मुझे पूरी तरह समझ में नहीं आता कि यह क्यों काम करता है, लेकिन यह वास्तव में समस्या को हल करता है। क्या कोई उस मध्य स्थान ब्लॉक के साथ क्या चल रहा है, इस बारे में अधिक स्पष्टीकरण जोड़ सकता है? – Brad
'उपनाम' जोड़ना उपनाम के लिए '$ document_root' प्रभावी ढंग से ओवरराइट करेगा। ध्यान दें कि यह 'fastcgi_script_name' या' $ request_filename' को प्रभावित नहीं करेगा। फ़ाइल नाम से मेल खाने वाले regex के साथ नए '$ document_root' का उपयोग करके, स्क्रिप्ट फ़ाइल को हल करता है। – Gajus
ध्यान दें कि अंतिम स्थान ब्लॉक '/ testpath/'के अंतर्गत होने पर कुछ भी नहीं कर रहा है। – Gajus