【问题标题】:.htaccess rewrite using RedirectMatch.htaccess 使用 RedirectMatch 重写
【发布时间】:2014-12-25 13:33:27
【问题描述】:

我需要将多个 URL 重定向到一个 来自
1.example.com/groups/3d/
2.example.com/groups/3d/skype:softlist_ua?chat
3.example.com/groups/3d/+/
4.example.com/groups/3d/+/+/
5.example.com/groups/3d/+/skype:softlist_ua?chat


example.com/catalog/3d/

重定向语句可以正常工作,但是当旧 URL 包含获取请求时,它会将此获取请求添加到新 URL 的末尾。如何删除它?

重定向匹配 301 ^/groups/3d/.*$ /catalog/3d/$1

【问题讨论】:

    标签: apache .htaccess redirect


    【解决方案1】:

    试试:

    RedirectMatch 301 ^/groups/3d/.*$ /catalog/3d/?
    

    RewriteEngine On
    RewriteRUle ^groups/3d/ /catalog/3d/? [L,R=301]
    

    【讨论】:

    • 快到了。不会添加整个查询,但是会添加 ?签到最后。 :)
    • @user2992672 什么查询?您想删除查询字符串,对吗?你的问题是说你希望一切都被重定向到example.com/catalog/3d/,而不是example.com/catalog/3d/blahblah/
    • 是的。一切都到 example.com/catalog/3d/。它适用于 example.com/groups/3d/ 或 example.com/groups/3d/*/ 但 example.com/groups/3d/skype:softlist_ua?chat 有 ?chat 部分可以转移到新的 url,所以我以 example.com/catalog/3d/?chat 结束
    • @user2992672 使用 mod_alias 无法摆脱 ?,需要使用 mod_rewrite。确保您已打开 mod_rewrite,请参阅编辑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    相关资源
    最近更新 更多