2

我使用 .htaccess 到 nginx 重写转换器,但解决方案不起作用。事实上,无论我尝试什么,我都无法让我的任何重写工作。我显然在这里做错了什么。

我想将除对 PHP 文件的请求之外的所有请求重定向到 index.php 文件并使用 PHP 解析请求(无论文件/文件夹是否存在)。

这是我的简约 Nginx.conf 文件:

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        # Make sure to set this as your actual server WWW root
        root html;
        # Index file
        index index.php;
        # Rewrite that directs everything to index file
        rewrite /!^(.*).php$ /./index.php last;

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

我什至尝试过像“rewrite index.php”这样的东西,但没有成功。我还尝试将重写放在单独的位置标签中,但这也没有什么区别。

我想将除对 PHP 文件的请求之外的所有请求重定向到 index.php 文件并使用 PHP 解析请求(无论文件/文件夹是否存在)。

除了没有足够的 Nginx 经验之外,我做错了什么?

原始 .htaccess 文件:

Options +FollowSymLinks 
RewriteEngine on
RewriteRule !^(.*)\.php$ ./index.php [QSA,L]
4

0 回答 0