nginx 重定向循环,从 url 中删除 index.php

2024-01-03

我想要任何请求,例如http://example.com/whatever/index.php,执行 301 重定向到http://example.com/whatever/.

我尝试添加:

rewrite ^(.*/)index.php$ $1 permanent;

location / {
    index  index.php;
}

这里的问题是,此重写在根 URL 上运行,这会导致无限重定向循环。

Edit:

我需要一个通用的解决方案

http://example.com/应该提供文件webroot/index.php

http://example.com/index.php,应该 301 重定向到http://example.com/

http://example.com/a/index.php应该 301 重定向到http://example.com/a/

http://example.com/a/应该在以下位置提供index.php脚本webroot/a/index.php

基本上,我不想在地址栏中显示“index.php”。我有旧的反向链接,需要重定向到规范网址。


很好的问题,有解决方案类似于我最近在 ServerFault 上回答的另一个问题 https://serverfault.com/questions/568569/nginx-url-rewrite-rule/568902#568902,虽然这里要简单得多,而且您确切地知道自己需要什么。

这里您想要的是仅在用户明确请求时执行重定向/index.php,但永远不要重定向任何最终由实际服务提供的内部请求index.php脚本,通过定义index指示。

这应该做到这一点,避免循环:

server {
    index index.php;

    if ($request_uri ~* "^(.*/)index\.php$") {
        return 301 $1;
    }

    location / {

        # ...
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx 重定向循环,从 url 中删除 index.php 的相关文章

随机推荐

  • 使用 AutoCloseable 关闭多个资源(try-with-resources)

    我知道 如果资源实现了 AutoCloseable 则您尝试传递的资源将自动关闭 到目前为止 一切都很好 但是 当我有多个想要自动关闭的资源时 我该怎么办 套接字示例 try Socket socket new Socket input n
  • 命名空间对性能有害吗? (PHP)

    我对 php 框架进行了一些更改以支持名称空间 但结果并不符合预期 对于简单的测试 主要加载框架类 执行时间减慢了约 10 根据您的经验 在大型应用程序上使用命名空间是否值得 考虑PHP的实际开发水平 已接受的答案php 命名空间基准测试
  • AWS将elb的8000端口转发到EC2的8000端口

    我有一个 ELB 其中在目标组中注册了多个 EC2 实例 我正在使用一个运行正常的 php 应用程序端口 它有 SSL 我想将端口 8000 用于我的节点应用程序 我想做的是将 my elb address 8000 转发到 any ec2
  • 根据元组的值对Python中的元组进行排序[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下代码打印最常见的 10 个单词 但是 它不起作用 关于如何修复它有什么想法吗 def reducer count words self word counts send all num occu
  • 关于搜索引擎抓取我应该了解什么?

    我指的不是 SEO 的事情 我应该知道什么 例如 引擎运行 JavaScript 吗 他们使用cookies吗 cookie 是否会跨爬行会话进行 例如今天的 cookie 和下周或下个月的爬行 选定的 JS 过滤器是否因某种原因未加载 例
  • 请解释一下该程序中的逗号运算符

    请解释一下该程序的输出 int main int a b c d a 10 b 20 c a b d a b printf nC d c printf nD d d 我得到的输出是 C 10 D 20 我的疑问是 运算符在这里做什么 我使用
  • B 树与二叉树

    如果我使用 b 树实现内存 RAM 搜索操作 那么与二叉树相比 它在缓存或其他一些效果方面会更好吗 我所知道的是 binary search tress O log n btrees O c log n 各种博客上对此进行了很多讨论 Alg
  • Fluent Nhibernate - 选择特定列并使用分组进行计数查询

    我在流畅的 nhibernate 中执行查询时遇到一些问题 我有一个表 书籍 包含以下列 ID NAME YEAR BOOK TYPE AUTHOR ID 我想在 Fluent NHibernate 中执行以下 sql 查询 SELECT
  • 如何在 Android 手机图库中实用地获取图像的所有详细信息

    我正在尝试获取手机图库中图像可用的所有详细信息 特别是位置 当用户单击详细信息时 这些信息将会出现 所以请告诉我该怎么做 请参阅屏幕截图以更好地理解 提前致谢 你应该去Exif接口 http developer android com re
  • 使用逻辑运算符索引 numpy 数组

    我有一个 2d numpy 数组 例如 import numpy as np a1 np zeros 500 2 a1 0 np arange 0 500 a1 1 np arange 0 5 1000 2 could be also re
  • 将我的网站与 Google 日历集成

    我正在用 PHP 开发一个网站 该网站的用户可以从我提供的日历中进行预约 当用户进行预订时 应将其添加到我的谷歌日历中 对于这种情况 我需要什么样的身份验证机制 以下哪一项 1 网络应用程序 2 服务账户 3 安装的应用程序 注意 我不想访
  • Swift 3:获取 UIImage 中像素的颜色(更好:UIImageView)

    我尝试了不同的解决方案 例如this one https stackoverflow com questions 25146557 how do i get the color of a pixel in a uiimage with sw
  • React Native Lottie - 动画结束时反转

    Context 我是lottie react native的新手 并且已经成功实现了我的第一个动画 constructor props super props this state progress new Animated Value 0
  • 无限墙算法中的门

    问题 门在墙上你面对的是一堵向两个方向无限延伸的墙 墙上有一扇门 但你不知道有多远 也不知道在哪个方向 只有当你靠近门时你才能看到门 设计一种算法 使您能够通过最多步行 O n 步到达门 其中 n 是您的初始位置和门之间的 您未知的 步数
  • 在哪里获取 csv 样本数据? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 作为开发的一部分 我需要处理一些 csv 文件 重要的是我正在用 java 编写一个超快速的 CSV 解
  • pdf图像色彩空间麻烦ios

    EDIT我一直在使用的pdf文件显然是 indesign 格式 无论这意味着什么 因此没有颜色配置文件 有谁知道如果可能的话我如何自己添加配置文件 编辑结束 预先感谢任何人可以为解决此问题提供帮助 首先让我告诉你 我在 IOS 开发方面是个
  • 客户端:访问 Windows Azure 驱动器?

    我正在开发一个 Azure 应用程序 其中一部分涉及用户浏览在线文件系统 为此 我尝试使用 Windows Azure 驱动器 但我不知道如何从客户端访问它 或者如何使其在服务器端可访问 目前 我只知道如何制作驱动器 CloudStorag
  • Docker推送错误“413请求实体太大”

    我设置了registry v2并使用nginx作为反向代理 当我将图像推送到注册表时 出现错误413 Request Entity Too Large 我已在 nginx conf 中将 client max body size 修改为 2
  • 使用起始 X/Y 和起始+扫描角度获取 ArcSegment 中的终点

    有没有人有一个好的算法来计算终点ArcSegment 这不是圆弧 而是椭圆弧 例如 我有这些初始值 起点 X 0 251 起点 Y 0 928 宽度半径 0 436 高度半径 0 593 起始角度 169 51 扫掠角 123 78 我知道
  • nginx 重定向循环,从 url 中删除 index.php

    我想要任何请求 例如http example com whatever index php 执行 301 重定向到http example com whatever 我尝试添加 rewrite index php 1 permanent l