2013-02-11 97 views
-1

我想一些旧的动态链接转发给新的目标mod_rewrite的老域规则,以新的域

旧的链接中使用

http://www.olddomain.com/index.php?cms=blog&action=.. 

不得不重写规则所以我会转发cms=blog到一个新的域http://www.newdomain.com/blog

+0

你知道BIG问题是什么先生-1。并非所有事情都很容易向Google解释。而你能解释的人不会听你的!谢谢你-1 – user2036282 2013-02-11 17:26:44

+0

This:'RewriteRule ^/docs /(.+)http://new.example.com/docs/$1 [R,L]'不起作用。它应该是这样的:'RewriteRule^docs /(.+)http://new.example.com/docs/$1 [R,L]'。但是不清楚你想要什么,如果你想让别人完全理解你需要什么,花点时间在你的问题中包含一些完整的URL例子。规则是不够的,特别是当它们是问题的原因时。 – 2013-02-11 17:56:08

+0

嘿faa,再次感谢您的回复..我正在编辑我的问题以更好地解释。我正在尝试这种方式,但没有解决它。 'RedirectMatch^/?cms = blog(。*)http://www.newdomain.com/blog/ [R = 301,L]' – user2036282 2013-02-11 17:59:34

回答

1

要匹配querystrings,你可以使用RewriteCond指令。您需要放置在www.olddomain.com/.htaccess中的完整规则为:

RewriteEngine on 
RewriteCond %{QUERY_STRING} (^|&)cms=blog(&|$) 
RewriteRule ^index\.php$ http://www.newdomain.com/blog? [R=302,L] 

如果需要,将302更改为301。

+0

嘿萨尔曼谢谢。前锋正在工作,但URL现在看起来像这样'http://www.newdomain.com/blog/?p = shop&action = ...'它应该只转发到'http://www.newdomain.com/blog '没有采取以前的条件。 – user2036282 2013-02-11 18:11:35

+0

我编辑了我的答案。请注意URL末尾的'?',它是必需的。 – 2013-02-11 18:14:25

+0

你是当天的国王;) – user2036282 2013-02-11 18:46:14