मेरे पास एक PHP स्क्रिप्ट है जो स्क्रिप्ट रूटिंग को संभालती है और सभी प्रकार की फैंसी चीजें करती है। यह मूल रूप से अपाचे के लिए डिज़ाइन किया गया था, लेकिन मैं इसे अपने कुछ बॉक्सों के लिए nginx में स्थानांतरित करने की कोशिश कर रहा हूं। अभी, मैं एक परीक्षण सर्वर पर चीजों को सुचारू करने की कोशिश कर रहा हूं।
तो जिस तरह से स्क्रिप्ट काम करती है, वह .htaccess
फ़ाइल का उपयोग करके निर्देशिका (अपाचे में) के लिए सभी HTTP ट्रैफ़िक को स्वीकार करती है । यहाँ ऐसा है जो दिखता है:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.+$ index.php [L]
</IfModule>
बहुत सीधा। सभी अनुरोध index.php
सादे और सरल माध्यम से चलाए जाते हैं ।
मैं nginx पर उस व्यवहार की नकल करना चाह रहा हूं, लेकिन मुझे अभी तक कोई रास्ता नहीं मिला है। किसी के पास कोई सुझाव है?
यहाँ nginx.conf
इस समय मेरी फ़ाइल की एक प्रति है । ध्यान दें कि यह मेरे लिए डिज़ाइन किया गया था कि मैं इसे काम करने की कोशिश करूँ ज्यादातर कॉपी / पेस्ट नौकरी।
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type text/plain;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name swingset.serverboy.net;
access_log /var/log/nginx/net.serverboy.swingset.access_log;
error_log /var/log/nginx/net.serverboy.swingset.error_log warn;
root /var/www/swingset;
index index.php index.html;
fastcgi_index index.php;
location ~ \.php {
include /etc/nginx/fastcgi_params;
keepalive_timeout 0;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}
}
.php
, उदाहरण के लिए यह काम करेगा:/doesNotExist.ph
लेकिन यह काम नहीं करेगा (इसके बजाय 404 मिलेगा):/doesNotExist.php