Redirect 和 RewriteRule 一起使用时的 .htaccess 重定向循环

2024-02-26

我正在 HTACCESS 文件中尝试以下操作:

我想要 301 重定向 -->http://www.domain.com/somepage.php?page=foo http://www.domain.com/somepage.php?page=foo

对此 -->http://www.domain.com/my-pretty-url/ http://www.domain.com/my-pretty-url/

当我改变网站上的内部链接以阅读我想要的方式并且我不使用 R=301 标志时,这工作得很好:

RewriteRule ^my-pretty-url/$ /index\.php?page=foo [L]

但是...这里的问题是我还想将任何外部请求 301 重定向到服务器,当我处理它时,它会让我陷入重定向循环。

RewriteCond %{REQUEST_URI} /index.php$
RewriteCond %{QUERY_STRING} ^page=foo$
RewriteRule ^.*$ http://www.domain.com/my-pretty-url/? [R=301,L]

RewriteRule ^my-pretty-url/$ /index\.php?page=foo [L]

RewriteCond 规则本身不起作用,只有底部的单个 RewriteRule 本身可以用于内部重写,但它不处理外部请求。

显然,如果我将两者放在一起,就会形成一个循环。我该如何解决这个问题?

Thanks!


请尝试以下方法来防止循环

#prevent internal redirects, and prevent loop
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{REQUEST_URI} /index.php$
RewriteCond %{QUERY_STRING} ^page=foo$
RewriteRule ^.*$ http://www.domain.com/my-pretty-url/? [R=301,L]

RewriteRule ^my-pretty-url/$ /index\.php?page=foo [L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redirect 和 RewriteRule 一起使用时的 .htaccess 重定向循环 的相关文章

  • WordPress Symfony 共存

    我们有一个在 Symfony 上运行的网站 它是由比我更有能力的人开发的 不过 我对 WordPress 非常熟悉 并将在该网站上安装一个博客 目前 该网站的根运行在 Symfony 上 但我希望 WordPress 能够接管 而不必触及
  • htaccess - XAMPP 上的互联网服务器错误 500 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我尝试在 XAMPP 上运行脚本 但收到 互联网服务器错误 500 在实时服务器上运行时效果很好 我认为这是一个 htaccess 错误 htacce
  • 强制某些页面通过 HTTPS,而其他页面则通过 HTTP...这可能吗?

    我真的被这个困住了 基本上 我尝试使用 IIS 的 URLRewrite 附加组件始终通过 SSL 制作 2 个页面 但我还需要强制所有其他页面使用 HTTP 叹气 不要问 但如果我强制其他页面通过 HTTP 那么当您查看 SSL 页面时
  • 将代码从 htaccess 重写为 nginx 配置?

    我在将 htaccess 文件中的重写代码实现到 nginx 配置中时遇到问题 我已经尝试过生成器 http winnginx com htaccess http winginx com htaccess用于生成我的重写 代码 我的ngin
  • if 不是 localhost 语句 htaccess

    我目前强迫访问者通过 https 访问我的所有网站 主要是 Wordpress 我使用以下代码 RewriteEngine On RewriteCond HTTPS on RewriteRule https SERVER NAME REQU
  • 如何在 .htaccess 文件中创建一个包罗万象的处理程序?

    我想在 htaccess 文件末尾创建一条规则 捕获在此之前未能匹配的所有内容 我怎样才能做到这一点 附 我已经尝试过一切 实际上 我没有 但看起来确实如此 Update 有些人的回复是RewriteRule 或同等内容 这不行 它将匹配一
  • 重定向到另一个文件夹

    我读了这个 htaccess 重写以将根 URL 重定向到子目录 https stackoverflow com questions 990392 htacces rewrite to redirect root url to subdir
  • htaccess隐藏php扩展时出错,只隐藏html

    我在使用 htaccess 隐藏网站上的 php 扩展时遇到问题 我看到很多网站试图修复它 但没有任何结果 但只有 html 扩展名对我来说是隐藏的 在我的 htaccess 上 我用这个来隐藏扩展 它就在错误页面之后 这是我的 htacc
  • 如何使用 htaccess 重定向 html 扩展?

    目前 这两个链接显示同一页面 http www example com podcast episode html http www example com podcast episode html http www example com
  • 如何修复 Nginx 自动 301 重定向到带有尾部斜杠的相同 URL?

    当我尝试将 Web 应用程序的子目录中的索引文件访问到相同的 URL 但附加了斜杠 时 Nginx 出现了不良行为 它正在重新路由请求 我有一个简单的 Web 应用程序 其中设置了一个根目录和其中的许多子目录 每个子目录中都有一个 inde
  • mod_rewrite GUI?

    任何人都有用于开发 mod rewrite 规则的图形工具 理想情况下 它会显示重写管道 然后当给定 uri 实例时 会显示应用时的转换 让它们正确设置总是很痛苦 因此任何使其变得更容易的方法都会有所帮助 对于 htaccess 阅读 mo
  • CakePHP - 选择性 SSL

    如何对网站的某些部分强制使用 HTTPS 例如登录页面或注册页面 并使用 HTTP 来完成网站的其余部分 我最喜欢的强制转换为 https 的方法是将其作为 php 脚本中的第一件事 它可以在 Joomla 中运行 也可以在 CakePHP
  • 控制缓存过期

    通过 Google 网站管理员工具的 PageSpeed 分析器运行我的网页后 它向我报告我的资源没有被缓存 下面是我的 htaccess 文件中直接取自 H5BP 的代码 我是否正确地假设以下过期时间设置正确 但我的实现中出现了问题 或者
  • 使用 .htaccess 重定向到 404 错误的 php/html 文件

    例如 我想将所有 404 错误重定向到 404 php 我尝试过使用ErrorDocument 404 404 php在 htaccess 中 但如果运气不好 也许我的其他规则不允许这样做 我不太确定 因为我在 www 上找不到此信息 如果
  • .htaccess 重写而不影响相对的 image/css/js URL?

    我需要一些有关 htaccess 文件的简单帮助 提前谢谢您 我有很多网站网址 例如 www site com index php page path solutions overview html www site com index p
  • .htaccess 将所有页面重定向到新域上的主页

    我将使用哪个重定向规则来重定向下的所有页面olddomain example被重定向到newdomain example 该网站的结构完全不同 所以我想要每一页在旧域名下重定向到新域名索引页 我认为这可以 在 olddomain examp
  • apache htaccess 将第一个段映射为参数而不干扰其他参数

    这可能是一个经典的 htaccess 问题 但我仍然找不到适合我的具体情况的问题 这是closest https stackoverflow com questions 9299793 apache httaccess rewriting我
  • Application.cpp 中的 SoftException:249:无法访问文件

    我有一个包含新闻消息的网站 而在我的 htacces文件我有这行代码 RewriteRule event 0 9 events php id 1 如果我访问 mysite com index event 1 我会得到一个500 intern
  • htaccess:删除扩展名,并重定向到index.php?p=

    RewriteRule a zA Z0 9 index php page 1 L 我之前的代码将 ex domain com about 重写为domain com index php page about 所以现在 我想添加一种安全措施
  • 使用 web.config 将除一页之外的 HTTP 重定向到 HTTPS

    我想让所有页面从 HTTP 重定向到 HTTPS 除了根目录中的一个页面 pagename php 该页面需要作为 HTTP 工作 需要重定向回 HTTP 我目前有以下代码可以从 none www 重定向到 www 以及从 HTTP 重定向

随机推荐

  • Python/OpenCV — 匹配两幅图像中细菌的质心点

    我正在研究一种使用计算机视觉来匹配细菌质心的算法 由于我是计算机视觉的本科生和初学者 因此我没有专门针对此问题的代码 只是为了提供一些背景知识 我在 GUI 中使用了以下函数 bact 变量是指 Bacteria 对象 它存储每个细菌的 I
  • 如何在 php-cs-fixer 中使用其他文件扩展名,例如 .ctp?

    如何在 php cs fixer 中使用其他文件扩展名 例如 cakephp 模板 ctp 文件 我尝试过这段代码
  • Javascript 日期为该月的第二个星期一

    我正在与一个在每月第二个星期一开会的小组合作 他们希望他们的网站能够反映下一次会议的日期 我有本月第二个星期一显示的脚本 但我在使用 if else 语句时遇到了问题 我需要它来反映下一个即将发生的事件 而不仅仅是本月的日期 IE 本月的活
  • BlackBerry SQLite 数据库创建:“文件系统未就绪”

    我的应用程序从服务器获取数据并将其保存到 SQLite 数据库中 这在 9550 中工作得很好 黑莓风暴2 http en wikipedia org wiki BlackBerry Storm 2 模拟器 但是当我在任何其他模拟器中运行它
  • 如何解决“java.lang.OutOfMemoryError:超出GC开销限制”

    I read 这个堆栈溢出页面 https stackoverflow com questions 1393486 what does the error message java lang outofmemoryerror gc over
  • 将自定义 WSDL 绑定到现有 WCF 服务

    我使用 WCF 创建了一个 Web 服务 我不知道如何通过数据契约在 WSDL XSD 中设置约束和限制 如果我使用约束改进 XSD2 架构 然后将此自定义架构绑定到现有服务会怎样 如果是这样 我怎样才能使服务公开改进的 WSDL 否则 还
  • R按组计数元素的出现次数[重复]

    这个问题在这里已经有答案了 计算每个组中向量或数据帧上元素出现次数的最简单方法是什么 我的意思并不是只计算总数 正如其他 stackoverflow 问题所要求的那样 而是为每个连续发生的事件提供不同的数字 例如对于这个简单的数据框 但我将
  • jQuery Sortable - 拖放多个项目

    我有以下代码 它允许用户从一个列表拖放到另一个列表 现在 我如何允许用户选择并拖放多个项目 像这样的东西吗 http jsfiddle net T68Fn http jsfiddle net T68Fn 我尝试将 jsfiddle 中的代码
  • 用于 ASP.NET Core 应用程序生产的 Kestrel 准备好了吗?

    我有一个在 asp net core 2 0 中开发的角度应用程序使用的 api 它已部署在 IIS 中并配置为使用 kestrel 我读到 Kestrel 在公开公开应用程序时并不安全等等 真的吗 Kestrel 还没有准备好用于生产吗
  • C++ 正则表达式解析嵌套结构

    我有一个永久格式如下的字符串 First nested string Second nested string 嵌套可以是任意深度 每个子元素都采用右大括号的格式 在上一层嵌套和右大括号的基础上添加两个空格 我想接收允许获取嵌套数据的正则表
  • 使用 WebCrypto API 生成 RSA 密钥对并使用密码保护它

    标题说明了一切 我想知道如何使用 WebCrypto API 生成 RSA 密钥对 以及如何使用密码保护它 以便将其存储在数据库中 You can 使用 WebCrypto 生成 RSA 密钥对并将其导出如 jwk Json Web 密钥
  • Spark 中的类型安全配置

    我已经在 Spark 应用程序中定义了一个默认配置 该配置位于src main resources reference conf I use ConfigFactory load 来获取配置 当我运行应用程序时spark submit它采用
  • 双Python for循环的numpy向量化

    V 是 n p numpy 数组 通常维度为 n 10 p 20000 我现在的代码看起来像 A np zeros p for i in xrange n for j in xrange i 1 A F i j V i V j 我将如何重写
  • Xpath 选择祖先

    我试图找到一个公式 根据元素在 XML 层次结构中的位置为该元素创建 URL 这是我的示例 xml
  • HttpContent 边界双引号

    我有这个代码示例 它是作为另一个问题的答案发布的 使用 C 通过 HTTP POST 发送文件 https stackoverflow com questions 1131425 send a file via http post with
  • 如何使用jquery查找表中行的索引

    我正在尝试查找表中一行的索引 我正在尝试使用以下代码 但我似乎得到的索引为 1 document ready function tr click function var index table index this span text T
  • 在 Javascript 中将 GMT 日期/时间转换为 EST

    在 Javascript 中 无论用户设置如何 如何将 GMT 中的日期 时间转换为 EST var tmpDate New Date enter any valid Date format here JavaScriptDate http
  • 如何证明一个函数有效?

    我最近开始信奉测试 并主要从单元测试开始 我编写单元测试来说明函数在某些情况下工作 特别是使用我正在使用的确切输入 我可能会做一些单元测试来练习该功能 不过 除了该函数在我测试过的场景下达到了我预期的效果之外 我实际上还没有证明任何其他东西
  • 从 .Net 4.0 到 4.5 的重定向解决方案 - 如何重定向 NuGet 包?

    我已将 VS2010 中当前针对 NET 4 0 的解决方案迁移到 VS2012 现在我想将其重新定位到 Net 4 5 我不确定的是 NuGet 包 例如 我在 VS2010 中从 EF4 更新的 EF5 实际上是 EF 4 4 如下所示
  • Redirect 和 RewriteRule 一起使用时的 .htaccess 重定向循环

    我正在 HTACCESS 文件中尝试以下操作 我想要 301 重定向 gt http www domain com somepage php page foo http www domain com somepage php page fo