用于重定向的Apache重写规则

用于重定向的Apache重写规则,apache,mod-rewrite,redirect,Apache,Mod Rewrite,Redirect,A我只是想: vhost1.xyz.com/name1/* 重定向到: vhost2.xyz.com/name2/* vhost2.xyz.com/name2/24ds21t31?kofs=oif.com vhost2.xyz.com/name2/kofs=oif.com 例如: vhost1.xyz.com/name1/24ds21t31?kofs=oif.com vhost1.xyz.com/name1/24ds21t31?kofs=oif.com 重定向到: vhost2.xy

A我只是想:

vhost1.xyz.com/name1/*
重定向到:

vhost2.xyz.com/name2/*
vhost2.xyz.com/name2/24ds21t31?kofs=oif.com
vhost2.xyz.com/name2/kofs=oif.com
例如:

vhost1.xyz.com/name1/24ds21t31?kofs=oif.com
vhost1.xyz.com/name1/24ds21t31?kofs=oif.com
重定向到:

vhost2.xyz.com/name2/*
vhost2.xyz.com/name2/24ds21t31?kofs=oif.com
vhost2.xyz.com/name2/kofs=oif.com
它总是类似于:/name1/some\u number\u&chars?name=url

我尝试过以下代码:

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]
但它使:

重定向到:

vhost2.xyz.com/name2/*
vhost2.xyz.com/name2/24ds21t31?kofs=oif.com
vhost2.xyz.com/name2/kofs=oif.com
所以“24ds21t31?”部分缺失,我需要它。

试试这个:

RewriteCond %{REQUEST_URI} ^vhost1.xyz.com/name1/(.+)$
RewriteRule . http://vhost2.xyz.com/name2/%1 [R=301,L]
编辑:我们需要所有的字符。。。不仅是多特(我犯了一个错误,因为我累了)。 所以是(+++)而不是(\.+)

EDIT2:以前和主持人在一起吗?(vhost1.xyz.com处于重写状态) 你以前没有别名或其他重写条件吗?
如果名称1不存在,这也是一个问题。。。(别名或创建空目录应该是一个解决方案)

感谢您的重播,不幸的是,我在浏览器中得到了:404和vhost1.xyz.com/name1/24ds21t31?kofs=oif.com…谢谢,检查了编辑的版本,但没有帮助-仍然一样。我认为可能存在一个问题,vhost1.xyz.com/name1/实际上并不存在,它在尝试重定向之前抛出了404?我不确定这是否有意义。不管怎样,从主题中的代码我没有得到任何404,它是重定向,但不是我想要的。它是重定向,我只是犯了不同的错误。谢谢,我正在进一步检查。我已经检查过了,一切正常。再次感谢你。