![Nginx,将所有请求重定向到子文件夹中的单个 index.php 文件](https://linux22.com/image/669476/Nginx%EF%BC%8C%E5%B0%86%E6%89%80%E6%9C%89%E8%AF%B7%E6%B1%82%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%E5%8D%95%E4%B8%AA%20index.php%20%E6%96%87%E4%BB%B6.png)
我正在尝试将我的网站从 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 实现这一点?我尝试了很多解决方案,但都没有成功。
感谢您的帮助 !