【问题标题】:Apache mod_rewrite ruleApache mod_rewrite 规则
【发布时间】:2025-12-31 23:40:02
【问题描述】:

我正在使用以下网址:

http://hostname/Numark-iDJ-Live-DJ-software-controller-for-iPad-iPhone-or-iPod/product/?mid=1&pid=B004JPPO94&src=hmb_numark

(另外,“Numark.. to ipod..”是“标题”)

我想写一个规则来把这个 URL 重定向到下面的 URL

http://hostname/product/?sid=1&pid=B004JPPO94&title=Numark-iDJ-Live-DJ-software-controller-for-iPad-iPhone-or-iPod&src=hmb_numark

注意第一个 url 包含 mid 和 pid,而第二个包含 pid 和 sid。

有人可以帮助我并指导我了解适用于这种情况的重写规则吗?

谢谢。

【问题讨论】:

    标签: apache mod-rewrite


    【解决方案1】:

    旧网址:

    http://hostname/Numark-iDJ-Live-DJ-software-controller-for-iPad-iPhone-or-iPod/product/?mid=1&pid=B004JPPO94&src=hmb_numark
    

    新网址:

    http://hostname/product/?sid=1&pid=B004JPPO94&title=Numark-iDJ-Live-DJ-software-controller-for-iPad-iPhone-or-iPod&src=hmb_numark
    

    我不知道这是否是您真正想要的,因为您尚未完全指定问题。此规则还要求 mid、pid 和 src 都以给定的顺序出现在 URL 中。

    RewriteEngine On
    RewriteCond %{QUERY_STRING} mid=(.*)&pid=(.*)&src=(.*)
    RewriteRule (.*)/product/ product/?sid=%1&pid=%2&title=$1&src=%3 [R=301,L]
    

    【讨论】:

    • 感谢您的快速响应,但这不起作用。我收到 404 错误
    • 您在浏览器中输入的确切 URL 是什么?这应该不会导致 404 错误,即使它不正确。
    • 还有,地址栏在404页面上显示的是什么网址?
    • 好的,事情就是这样...我可能已经调整了问题的 url,因为我认为这会使回答变得更容易...实际的 url 格式如下...@987654321 @ 将被重定向到以下内容:(另外,“Numark.. to ipod..”是“标题”hostname/product/?sid=$2&pid=$3&title=$1&src=$4。注意第一个 url 包含 mid 和 pid,而第二个包含 pid 和 sid。谢谢
    • 请编辑您的问题,而不是将其放在评论中。在这里阅读几乎是不可能的,这使得问答对除了你自己以外的任何人都毫无用处(帮助你个人只是专家建立一个重复性编程问题答案库的附带好处)。