【问题标题】:How to 301 Redirect with a % in the URL如何在 URL 中使用 % 进行 301 重定向
【发布时间】:2015-10-30 19:12:48
【问题描述】:

所以我只是用普通的 .htaccess 列出了 423 301 重定向

Redirect 301 /blog-articles/129/Bad_Economy_Thank_You%2C_I_Didnt_Know.html /2010/05/bad-economy-thank-you-i-didnt-know-2/

但我的问题可能是 50 个 URL 中包含 % 并且它们不会重定向到任何地方。我看不到任何看起来有效的重写或正则表达式。这对我来说似乎有点反常。任何人都可以直接指出我如何重定向其中包含% 的网址,如下面的网址。

/blog-articles/129/Bad_Economy_Thank_You%2C_I_Didnt_Know.html

谢谢你先进。 (我开始拔头发了)

【问题讨论】:

  • % 应该被解释为一个 urlencoded 字符的开始,它必须是有效的。您是否尝试删除字符以查看问题是否正是 %?
  • 尝试在 mod_rewrite 中使用 B 标志。
  • 也可以尝试用引号括起来。 "/blog-articles/129/Bad_Economy_Thank_You%2C_I_Didnt_Know.html" 如果你继续使用重定向
  • @Zerquix18 我需要 URL 中的 % 因为旧网站 CMS 就是这样工作的。那篇文章的标题是糟糕的经济谢谢你,我不知道所以它把逗号变成了 %2C,它必须在 URL 中才能使重定向工作。
  • @PanamaJack 我刚刚尝试过,但没有成功! :/ 你让我的希望一秒钟。

标签: apache .htaccess mod-rewrite redirect


【解决方案1】:

@Zerquix18 为我指明了正确的方向!

% 确实是 %2C 的一部分,它是一个“,”。所以我浏览了整个重定向列表,并通过引用 http://www.w3schools.com/tags/ref_urlencode.asp 将任何 urlencoded 字符更改为实际字符

有趣的是,你问了一个问题后,它就更容易解决了!

谢谢大家!

【讨论】:

    【解决方案2】:

    您需要在您的模式中使用\x2C 代替%2C。试试这个规则:

    RedirectMatch 302 ^/blog-articles/129/Bad_Economy_Thank_You\x2C_I_Didnt_Know\.html /2010/05/bad-economy-thank-you-i-didnt-know-2/
    

    【讨论】:

      猜你喜欢
      • 2020-02-14
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 2015-10-19
      • 2013-08-19
      • 2015-02-06
      • 2010-12-21
      • 2019-06-09
      相关资源
      最近更新 更多