【问题标题】:Redirect url to another url with query string使用查询字符串将 url 重定向到另一个 url
【发布时间】:2014-11-10 19:52:45
【问题描述】:

我想用 .htaccess 重定向

http://www.site1.com/pages/?url=http://www.gooogle.com/xyz/jkjk.html

http://tracking.site2.com/s?key=123456789&url=http://www.gooogle.com/xyz/jkjk.html

RewriteEngine On
RewriteCond   %{REQUEST_URI}    ^/pages/?$
RewriteCond   %{QUERY_STRING}   ^url=(.+)$
RewriteRule   ^(.*)$ http://tracking.site2.com/s?key=123456789&url=$1  [R=301,L]

试过这个..失败了。 请帮我解决这个问题

【问题讨论】:

  • “失败”是什么意思?这条规则有什么问题?
  • 它没有重定向。它正在重定向到这样的 url tracking.site2.com/pages/(no 查询字符串)

标签: regex apache .htaccess mod-rewrite redirect


【解决方案1】:

您可以在 server1 的 root .htaccess 中使用此规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^url=([^&]+) [NC]
RewriteRule ^pages/(.*)$ http://tracking.site2.com/s?key=123456789&url=%1 [QSA,NC,NE,R=301,L]

RewriteCond 反向引用捕获的组,我们需要使用%1%2 等而不是$1$2

【讨论】:

【解决方案2】:

如果您想要查询字符串,请添加一个额外的 QSA 标志(Query String Append),如下所示:[R=301,QSA,L]

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    相关资源
    最近更新 更多