У мене є сценарій PHP, який обробляє маршрутизацію сценаріїв і робить всілякі химерні речі. Спочатку він був розроблений для Apache, але я намагаюся перенести його на nginx для кількох моїх скриньок. Зараз я намагаюся вирівняти речі на тестовому сервері.
Таким чином, як працює сценарій, це те, що він перехоплює весь трафік HTTP для каталогу (в Apache) за допомогою .htaccess
файлу. Ось як це виглядає:
<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