【问题标题】:.htaccess redirect shows multiple %20 when URL contains space on HTTPS当 URL 在 HTTPS 上包含空格时,.htaccess 重定向显示多个 %20
【发布时间】:2016-07-22 03:25:52
【问题描述】:

我有一些需要重定向的旧 URL,不幸的是其中一些包含空格。我将它们重定向到我的 redirect.php 脚本,但由于某种原因,当 URL 包含空格或 %20 时,在重定向后的 URL 中,此 %20 无限次重复。这似乎只发生在我们将服务器切换到 HTTPS 时,在 http 子域或我的本地运行时,它可以正常工作。

我的规则是:

RewriteRule ^/?(gallery\.php)(.*) /redirect.php$2 [R,L]

这可以正常工作:

gallery.php?place=name --> redirect.php?place=name

但是当 url 包含空格时会发生这种情况:

gallery.php?place=long%20name -->

redirect.php?place=long%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name

我尝试添加 [B][NE] 标志但没有成功。我有什么遗漏吗?

更新 1: 为了排除 htaccess 中的其他规则,我创建了一个新示例。我有空目录 /test/ ,里面是空文件 /test/index.php/test/.htaccess 文件,其中包含:

RewriteEngine On
RewriteRule ^/?(index\.php)(.*) /$2 [NE,R,L]

就是这样。行为仍然很奇怪,例如: /test/index.php?a=xy 按预期工作,但 /test/index.php?a=x%20y 重复 %20 符号。

【问题讨论】:

  • 有趣,它应该可以工作。它适用于我的确切代码,使用 SSL。您的 .htaccess 中是否还有其他重写/重定向?如果是这样,将整个问题发布在您的问题中可能会有所帮助。
  • @Vrac 我已经更新了我的问题并添加了实时示例
  • 你控制这台服务器吗?在 httpd.conf 中设置 LogLevel alert rewrite:trace6 并跟踪 apache 错误日志。
  • @Vrac ,很抱歉我没有,它是 Media Temple 上的网格服务器。我检查了错误日志,只有可疑行包含以下内容:[Thu Jul 21 19:16:24 2016] [error] [client 120.22.83.227] ModSecurity: Rule 7fcaac4886c8 [id "-"][file "/etc/apache2/mod_security/custom/jetpack.conf"][line "66"] - Execution error - PCRE limits exceeded (-8): (null). [hostname "mattlauder.com.au"] [uri "/old-content-redirect/gallery.php"] [unique_id "V5GB@EANwBYAADnBITUAAAB5"]
  • 您的主机正在使用自定义的 mod_security 规则,他们可能有某种过滤器来过滤乱七八糟的空间。很难说配置可能有什么问题,但显然存在配置问题,您的代码非常简单并且应该可以工作(并且在我尝试过的多台服务器上都可以)。也许是时候将问题提交给您的房东了。

标签: .htaccess loops redirect https spaces


【解决方案1】:

所以最后我设法通过重新排序 .htaccess 规则来解决这个问题。因此,我将所有从 HTTP 重定向到我的重定向脚本,该脚本也在 HTTP 上。然后,此脚本解析正确的新 URL,该 URL 已经在 SSL 上,没有空格,然后脚本重定向到那里。幸运的是,所有旧 URL 都在 HTTP 上,所以就足够了,我不需要在 SSL 上发生此参数重定向。

[NE] 标志在使用 %20 重定向 URL 时也很有帮助,因为它可以防止百分号在新 URL 中进一步编码。

【讨论】:

    猜你喜欢
    • 2013-07-04
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2011-03-31
    • 2020-05-03
    • 2015-12-23
    • 1970-01-01
    相关资源
    最近更新 更多