Nginx,将所有请求重定向到子文件夹中的单个 index.php 文件

Nginx,将所有请求重定向到子文件夹中的单个 index.php 文件

我正在尝试将我的网站从 Apache 迁移到 Nginx。我的网站结构如下:

  • www_root
    • 民众
    • 其他文件夹

所有请求都重定向自www_root到公共文件夹,其中包含以下内容:

RewriteRule    ^$   public/    [L]
RewriteRule    (.*) public/$1    [L]

在里面公用文件夹,所有请求都通过此 .htaccess 重定向到单个入口点 index.php:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]

目前我的服务器块是这样的:

server {
    server_name domain.com www.domain.com;
    root /var/www/domain.com/htdocs/public;

    location / {
        # try to serve file directly, fallback to index.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/index\.php(/|$) {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }
}

因此,我只能通过添加查询字符串来查看所需的页面。例如http://www.domain.com/?page=the/page/to/see

我如何使用 Nginx 实现这一点?我尝试了很多解决方案,但都没有成功。

感谢您的帮助 !

相关内容