Apache mod_rewrite 未将表达式映射到参数

2023-12-26

我有一个网站使用apache mod_rewrite并且在过去 6 个月里一直工作,没有出现任何错误。

我有以下重写规则:

RewriteRule ^products/([a-z\-]+)/$ /products.php?category=$1 [NC,L]

这是我页面中的代码products.php

$category = $_GET['category'];

if (isset($category)) {
    // do some processing here
}
else {
    header("Location: /500.html");
    exit;
}

符合此规则的链接的示例是/products/lighting-poles/

有谁知道为什么实际重写仍在发生但没有映射([a-z\-]+) to category=$1?

额外信息

我注意到.htaccess主机上的文件已注释掉该行Options +FollowSymLinks所以我首先尝试重新启用此功能,结果网站返回 apache 白屏500 error.

.htaccess 文件的更多内容

<IfModule mod_rewrite.c>
#Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# Add a trailing slash to paths without an extension
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1/ [L,R=301]

# other rules including problem rule here

</IfModule>

这听起来像一个病态的多视图问题。多视图是一种内容协商功能,如果打开它,它将在 URL 文件映射管道中尝试一些不同的额外操作,以尝试查找映射到 URL 的文件。这里你有一个像这样的网址/products/blah,但是,你有一个名为products.php,所以多视图可能会尝试映射products to /products.php/blah。因此完全绕过重写规则,并且您看不到category范围。

在选项所在的位置,尝试添加:

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

Apache mod_rewrite 未将表达式映射到参数 的相关文章

  • Readfile 从大文件中读取 0 字节?

    我正在尝试通过以下方式发送一个大文件readfile 但是 没有任何内容发送到浏览器 并且readfile 回报0 not false 我尝试发送的文件大小为 4GiB 并且可由 PHP 读取 我正在设置set time limit 0 以
  • 通过 Sparkpost 发送 iCal 邀请

    我正在尝试使用 SparkPost 通过电子邮件以附件形式发送日历邀请 但收到电子邮件后邀请不会打开 我使用两个文件 calendarinvite php 来创建邀请 使用 Sendemail php 来发送电子邮件 calendarinv
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia
  • 我可以让 swagger-php 在查询字符串上使用数组吗?

    我使用 Swagger php 当我定义查询字符串上的参数时 它可以是一个数组 但据我所知 它不支持这种查询字符串 https api domain tld v1 objects q 1 q 5 q 12 我相信这会被设定in the co
  • 所有 PHP 相等比较都是对称的吗?

    Is a b总是等价于 b a 我认为在 JavaScript 中 由于强制转换 有一些奇怪的情况并非如此 I think ide https stackoverflow com questions 4752579 are all php
  • Smarty 如果 URL 包含

    使用 Smarty 标签我想确定 URL 是否包含单词 例如 if smarty get page contains product php 我知道 contains 不存在 但是我怎样才能轻松地编写类似的东西来实现上述代码呢 所有 PHP
  • Symfony2:为什么请求传递到受 Symfony2 中 AppCache 影响的 Kernel.Terminate EventListener

    在我的 Symfony2 2 应用程序中 我使用 onKernelTerminate EventListener 以便我可以在渲染响应后进行一些 繁重 处理 以便用户收到更快的响应时间 在我的控制器中 我在请求上设置了一个属性 以便当事件侦
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 如何隐藏 URL 中的锚标记

    如何隐藏地址栏中以下链接 href 的哈希值 a href index php dev name 所以它会将我重定向到index php dev name 但我希望地址栏只显示index php 您可以使用 Javascript oncli
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • PHP - 类外 use 关键字和类内 use 关键字的区别

    伙计们 美好的一天 只是想问一下有什么区别use之外的class and use在 的里面class 我也用谷歌搜索过 但我的问题与答案不匹配 Example namespace App Http Controllers Auth use
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • PHP 扩展开发入门 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请推荐有关 PHP 低 级 modules 编程接口的帮助文章或教程 搜索我的书签 我发现的唯一链接是
  • PHP 中的引用

    我正在编写一个自定义博客引擎 并且希望拥有类似于 Wordpress 的引用 我可以查看 WordPress 源代码 但我真的更喜欢某种教程 但到目前为止我还没有找到 有没有关于在 PHP5 中实现 trackbacks 或 pingbac
  • WordPress 自定义帖子类型未显示在搜索结果中

    我在 WordPress 中遇到自定义帖子类型 测验 和搜索的问题 自定义帖子类型未显示在我的搜索结果页面中 我的搜索结果中仅显示默认的帖子内容 以下是我使用的代码 函数 php函数create posttype register post
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • 如何清除 APC 缓存而不使 Apache 崩溃?

    如果 APC 存储大量条目 清除它们会导致 httpd 崩溃 如果 apc clear cache user 花费的时间超过 phps max execution time 调用 apc clear cache 的脚本 将在之前被 php
  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之

随机推荐

  • 指向非静态成员函数的指针“正式”不被视为指针

    我碰到this https stackoverflow com a 71870413 12002570其中指出 成员函数指针不是指针 指向非成员函数 包括静态成员函数 的指针是指针 上面的引用似乎表明指向非静态成员函数的指针不是指针 同样
  • 如何在 Xcode 4.5“命令行工具”项目中设置工作逻辑单元测试目标?

    无法为特定场景设置单元测试 这就是我正在尝试的 在 Xcode 4 5 中 我创建了一个简单的 OSX 命令行工具 应用项目 基金会 请注意 Xcodedoes not提供自动将单元测试添加到 命令行工具 项目的选项 所以请不要建议勾选复选
  • 用于阻止 Swift 的 Safari 内容的多个过滤器

    我正在构建一个简单的内容阻止应用程序 它有效 但我想应用过滤器 要阻止哪个网站 不阻止哪个网站 UISwitches 保存到NSUserDefaults 因为内容阻止扩展使用 json 所以我不清楚如何选择多个 json 文件同时运行 有什
  • GAE TextProperty 中的“=”符号

    通过 POST 添加文本时 我在文本属性中遇到了奇怪的附加符号 例如 队伍带着不可阻挡的愤怒回来了 他们被警察 阿朗佐和尤马追赶 Vinnie Shorty 和 Kiro 92 的技能将受到考验 该文本中不应有任何 符号 我的代码是 cla
  • 具有自定义网络的 Docker swarm

    我正在尝试弄清楚如何在 Docker 中正确使用 Swarm 模式 首先 我尝试在 2 个工作人员和管理人员计算机上运行容器 而不指定自定义网络 因此我使用默认的入口覆盖网络 但是 如果我使用入口网络 由于某种原因我无法解析tasks my
  • 如何在不同模块中隐藏 Java 中 Kotlin 内部类的可见性?

    我正在研究用 Kotlin 开发的 Android 库 我将某些类的访问修饰符保留为internal 内部类仅在 Kotlin 的该库模块中可见 如果我在应用程序中实现该库 那么它根本不可见 但从 Java 代码访问该库时就会出现问题 如果
  • 如何找出 Vim 设置在哪个插件中被更改?

    今天我有一些奇怪的行为 我有 set autoindent 在我的 vimrc 中 但由于某种原因 每当我打开 PHP 文件时 它就会被关闭 我现在通过添加一行来修复它 autocmd FileType php set autoindent
  • 结合字母顺序和自然顺序(又名用户理智排序)

    我认为这很容易找到预制的 但似乎我在网上找到的任何解决方案都只能解决部分问题 我想对列表进行排序文件名 这些文件大多以人名和 或地址命名 由用户提供 有时使用不同的语言 主要是德语 到处混有一点法语和意大利语 很少有其他西方语言 这个想法是
  • Android Eclipse 插件太慢

    我目前使用的是带有 1 83GHz 处理器和 1 GB RAM 的 Windows 7 机器 我曾经能够使用所有应用程序 没有速度问题 我最近在 Eclipse Helios 中安装了 Android 插件 现在 Eclipse 速度严重减
  • 循环内的侦听器不允许更改外部布尔标志

    继我之前的帖子之后here https stackoverflow com questions 15762311 add a keylistener inside a loop is it possible 我写了一个监听器 Overrid
  • 在 HTML5 和 JavaScript 中使用 Google 地图室内地图 API

    我想使用 HTML5 和 JavaScript 创建一个室内地图应用程序 我创建了一个简单的路线图应用程序 但是当我单击放大任何室内兼容的建筑物 购物中心时 没有级别或地板选项 那么 HTML5 和 Javascript 支持室内功能吗 在
  • 使用 itextsharp 的文本的 x 和 y 坐标

    当我使用 itextsharp 提取文本时 我将获得文本的 x 和 y 坐标 如果我根据 x y 位置将文本从 pdf 转换为 html 则通过使用这 2 个坐标来更改文本位置 获取我使用的 x y 坐标 矢量 curBaseline re
  • 我的班级实例中出现奇怪的内存覆盖问题

    这个问题与this https stackoverflow com questions 6649567 how to check if network shared exe file is used by more than one use
  • 具有 null 安全性的 Flutter / Dart 包integration_test

    据我了解 包集成 测试 https pub dev packages integration test包不是空类型安全的 该包可以用于当前的 Flutter 版本 版本 gt 2 0 吗 如果没有 还有其他选择吗 正如自述文件中所述 该包是
  • SAS LOOP - 从具有值的记录创建列

    假设我有随机诊断代码 例如 001 v58 142 如何从记录中的代码构造列 Input id found code 1 1 001 2 0 v58 3 1 v58 4 1 003 5 0 v58 15000 0 v58 Output id
  • Twilio 在打电话时说动词

    基于这个问题 https stackoverflow com questions 6863305 twilio say verb nested into a dial verb 它非常接近我想要的 当双方建立连接时 我们尝试在通话期间触发
  • 从 Apache Velocity 模板访问常量值?

    是否可以从 Velocity 模板访问常量值 即 Java 类中定义的公共静态最终变量 我希望能够写出这样的东西 if a lt Long MAX VALUE 但这显然不是正确的语法 有很多种方法 1 您可以将值直接放入上下文中 2 您可以
  • 如何优化 MySQL 更新查询?

    我有一个包含 300 000 条记录的表 在此表中有重复的行 我想更新列 flag TABLE number flag more column ABCD 0 ABCD 0 ABCD 0 BCDE 0 BCDE 0 我使用此查询
  • 限制 Django 模型中的递归外键深度

    我有一个 Django 模型 其中 self 的外键可为空 我有兴趣对递归深度引入硬限制 例如 10 哪里是检查这个的正确位置以及我应该在那里抛出什么样的异常 我的意思的伪示例 def limit recursion depth self
  • Apache mod_rewrite 未将表达式映射到参数

    我有一个网站使用apache mod rewrite并且在过去 6 个月里一直工作 没有出现任何错误 我有以下重写规则 RewriteRule products a z products php category 1 NC L 这是我页面中