Tôi có một tập lệnh PHP xử lý định tuyến tập lệnh và thực hiện tất cả các thứ ưa thích. Ban đầu nó được thiết kế cho Apache, nhưng tôi đang cố gắng di chuyển nó sang nginx cho một vài hộp của tôi. Ngay bây giờ, tôi đang cố gắng giải quyết mọi thứ trên máy chủ thử nghiệm.
Vì vậy, cách tập lệnh hoạt động là nó chặn tất cả lưu lượng HTTP cho thư mục (trong Apache) bằng một .htaccess
tệp. Đây là những gì trông giống như:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.+$ index.php [L]
</IfModule>
Khá đơn giản. Tất cả các yêu cầu được chạy qua index.php
, đơn giản và đơn giản.
Tôi đang tìm cách bắt chước hành vi đó trên nginx, nhưng tôi chưa tìm được cách nào. Bất cứ ai có bất kỳ đề nghị?
Đây là một bản sao của nginx.conf
tập tin của tôi tại thời điểm này. Lưu ý rằng nó được thiết kế cho tôi để cố gắng làm cho nó hoạt động; chủ yếu là một công việc sao chép / dán.
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;
}
}
}