【问题标题】:Redirect old ASPX URL with commas to new PHP URL用逗号将旧的 ASPX URL 重定向到新的 PHP URL
【发布时间】:2016-06-24 15:44:04
【问题描述】:

我已经为此搜索了很多,但没有遇到我的确切问题。

我最近将一个旧的 .aspx 网站重建为 WordPress,基本上更改了网站上的每个 URL。我已经完成了所有重定向,除了其中一些带有逗号的 URL,我似乎无法重定向。

带有逗号的 URL 显示 Apache “禁止”页面。

例如,我有一个 URL:/resourceslearn/tools/checklists,-tips,-tools/whitepapers.aspx,我需要重定向到 /whitepapers/

我对正则表达式不是很好,更不用说htaccess规则了,所以如果我尝试的完全错误,请原谅我。

我尝试了以下规则:

Redirect 301 /resourceslearn/tools/checklists(.+)-tips(.+)-tools/whitepapers.aspx$ /whitepapers/

Redirect 301 /resourceslearn/tools/checklists([^/]+)-tips([^/]+)-tools/whitepapers.aspx$ /whitepapers/

Redirect 301 /resourceslearn/tools/checklists,-tips([^/]+)-tools/whitepapers.aspx$ /whitepapers/

Redirect 301 /resourceslearn/tools/checklists([^,/]+)-tips([^,/]+)-tools/whitepapers.aspx$ /whitepapers/

任何人都可以就如何检测 URL 中的逗号并将其重定向到正确的页面提供一些帮助吗?

【问题讨论】:

    标签: php asp.net wordpress .htaccess redirect


    【解决方案1】:

    你不能在重定向中使用正则表达式,试试RedirectMatch

    RedirectMatch 301 ^/resourceslearn/tools/checklists(.+)-tips(.+)-tools/whitepapers.aspx$ /whitepapers/
    

    参考:

    https://httpd.apache.org/docs/current/mod/mod_alias.html

    【讨论】:

    • 很高兴知道,谢谢。不幸的是,它仍然返回 Forbidden 错误页面。
    • 我尝试了一个隐身浏览器,所以缓存应该不是问题。我正在使用 WP Super Cache 插件,它会缓存 htaccess 文件吗?
    • htaccess 中还有其他指令吗?
    • 啊,我做到了!我有一个阻止逗号的安全重定向。谢谢您的帮助。 RedirectMatch 起作用了。
    【解决方案2】:

    Redirect 不使用正则表达式,只是一个 URL 路径。这意味着,您可以按字面意思选择路径

    Redirect /resourceslearn/tools/checklists,-tips,-tools/whitepapers.aspx /whitepapers/
    

    当它正常工作时,您可以将状态代码替换为301。切勿使用 R=301 进行测试。

    【讨论】:

    • 我已经在我的系统上测试了这个重定向并且它工作正常,所以你的htaccess中必须有一些其他的规则或重定向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2014-04-10
    • 2019-08-15
    • 2015-09-14
    相关资源
    最近更新 更多