2012-08-01 139 views
0

一个只想:阿帕奇重写规则重定向

vhost1.xyz.com/name1/* 

重定向到:

vhost2.xyz.com/name2/* 

例子:

vhost1.xyz.com/name1/24ds21t31?kofs=oif.com 

重定向到:

vhost2.xyz.com/name2/24ds21t31?kofs=oif.com 

这将永远是这样的:?/名1/some_number_ &字符名称=网址

我曾尝试这样的代码:

RewriteCond %{REQUEST_URI} ^vhost1.xyz.com/name1/$ 
RewriteRule . - [E=myUri:%1,E=myQuery:%2] 
RewriteRule . http://vhost2.xyz.com/name2/%{ENV:myQuery} [R=301,L] 

但它makeing:

vhost1.xyz.com/name1/24ds21t31?kofs=oif.com 

重定向到:

vhost2.xyz.com/name2/kofs=oif.com 

so“24ds21t31?”部分丢失,我需要这个。

回答

0

试试这个:

RewriteCond %{REQUEST_URI} ^vhost1.xyz.com/name1/(.+)$ 
RewriteRule . http://vhost2.xyz.com/name2/%1 [R=301,L] 

编辑:我们需要的所有字符......不仅点(我犯了一个错误,因为我累了)。 (。+)而不是(\。+)

EDIT2:与主机之前? (vhost1.xyz.com在rewriteCond) 你有没有别名或其他重写cond之前? 如果name1不存在,这也是一个问题...(和别名或创建一个空目录应该是一个解决方案)

+0

感谢重播,不幸的是我得到:404与vhost1.xyz.com/name1 /24ds21t31?kofs=oif.com在我的浏览器中... – user1443373 2012-08-01 10:05:58

+0

谢谢,检查了编辑后的版本,但它不会帮助 - 仍然是一样的。我认为可能有一个问题,即vhost1.xyz.com/name1/实际上不存在,并且在尝试重定向之前抛出404错误?我不确定这是否有道理。无论如何,从主题的代码我没有得到任何404,它是重定向,但不是我想要的。 – user1443373 2012-08-01 10:16:13

+0

它重定向,我刚刚犯了不同的错误。谢谢,我正在进一步检查。 – user1443373 2012-08-01 10:20:36