【问题标题】:301 redirect not working properly with htaccess301 重定向无法与 htaccess 一起正常工作
【发布时间】:2016-09-20 11:19:01
【问题描述】:

http://www.domain.com/thanks.php?orderid=MTI0NjAx

上面的网址应该重定向到 http://www.domain.com/order-confirmation/MTI0NjAx

但现在它重定向到下面的 url,比如...... http://www.domain.com/order-confirmation/MTI0NjAx?orderid=MTI0NjAx

我正在使用下面的代码,但无法正常工作...

RewriteCond %{THE_REQUEST} /thanks\.php\?orderid=([^&\s]+) [NC]
RewriteRule ^ /order-confirmation/%1 [NC,R=301,L]
RewriteRule ^order-confirmation/([^/]+)$ /thanks\.php\?orderid=$1 [NC,L]

谁能帮帮我,我该怎么做?

【问题讨论】:

    标签: php .htaccess redirect


    【解决方案1】:

    您需要在目标 URL 中使用? 来剥离之前的查询字符串:

    RewriteCond %{THE_REQUEST} /thanks\.php\?orderid=([^&\s]+) [NC]
    RewriteRule ^ /order-confirmation/%1? [R=301,L]
    
    RewriteRule ^order-confirmation/([^/]+)$ /thanks\.php\?orderid=$1 [NC,L,QSA]
    

    从 Apache 2.4 开始,您还可以使用 QSD(查询字符串丢弃)标志来跳脱以前的查询字符串。

    【讨论】:

    • 我已经添加了你的编码,仍然出现同样的问题
    • 这可能是由于您的浏览器缓存。在测试 chage 之前完全清除浏览器缓存。
    • 是的,清除缓存后,现在可以正常工作了,谢谢
    猜你喜欢
    • 2013-11-04
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2015-07-02
    相关资源
    最近更新 更多