nginx - 重定向 Nginx 中除少数页面外的所有内容
问题描述
我有一个子域,指向托管在子文件夹中的网站,其中包含:
- 一个名为 的子文件夹
r
,里面有我的 CSS 和其他资源文件(稍后你会明白为什么我有这个文件夹) - 一些文件,例如
privacy-policy.php
,imprint.php
,... - 一个脚本
index.php
我希望用户输入http://www.example.com/STRING
,他得到了服务,除非在添加(即 ,)http://www.example.com/index.php?code=STRING
时这会导致现有页面.php
http://www.example.com/privacy-policy
http://www.example.com/imprint
现在,我的 nginx 配置文件给出了这个
location /subfolder/ {
try_files $uri $uri/ $uri.php index.php?code=$uri;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
location /subfolder/r/ {
try_files $uri $uri/ =404;
}
}
r
已创建子文件夹,以便 PHP 不会处理静态文件。
这适用于r
子文件夹内的静态文件,也适用于imprint.php
类型,但不适用于重定向到index.php?code=$uri
.
这是为什么?
解决方案
推荐阅读
- javascript - @Input 在延迟加载页面的 ionic 3 自定义组件中不起作用
- java - 由于清单无法构建项目
- python - 如何访问路径响应
- python - 在 Linux 路由器上的 python 中使用 Modbus RTU 写入多个寄存器失败
- python - 如何从“类型”实例中获取类名?
- php - 我想将此 mySQL 更改为 Laravel ORM
- encryption - 加密存储在远程后端(如 GCS 存储桶)上的 Terraform 状态是否有用?
- c++ - 建立一棵非二叉树,每个节点在c ++中都有大量子节点
- android - 迁移到 AndroidX 后要添加哪些 ProguardRules
- swift - 将变量添加到字典 Swift