Tengo un script PHP que maneja el enrutamiento de script y hace todo tipo de cosas elegantes. Originalmente fue diseñado para Apache, pero estoy tratando de migrarlo a nginx para algunas de mis cajas. En este momento, estoy tratando de suavizar las cosas en un servidor de prueba.
Entonces, la forma en que funciona el script es que intercepta todo el tráfico HTTP para el directorio (en Apache) usando un .htaccessarchivo. Así es como se ve:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.+$ index.php [L]
</IfModule>
Muy claro. Todas las solicitudes se ejecutan index.php, simple y llanamente.
Estoy tratando de imitar ese comportamiento en nginx, pero aún no he encontrado una manera. Alguien tiene alguna sugerencia?
Aquí hay una copia de mi nginx.confarchivo en este momento. Tenga en cuenta que fue diseñado para que yo solo trate de hacerlo funcionar; principalmente un trabajo de copiar / pegar.
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, por ejemplo, esto funcionará:/doesNotExist.phpero esto no funcionará (obtendrá 404 en su lugar):/doesNotExist.php