Php .htaccess以编码形式重定向到url

Php .htaccess以编码形式重定向到url,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我试图将每个url从一个域重定向到另一个域,并将url部分保留在/ 下面是我尝试做的一个例子: 当有人访问mydomain.com/any-url时 他应该被重定向到urltracker.com/events/redirect_to=http%253A%252F%252fsecondomain.com%252Fany url 我目前正在使用 RewriteEngine on RewriteRule ^(.*)$ http://urltracker.com/events/redirect_to=

我试图将每个url从一个域重定向到另一个域,并将url部分保留在/

下面是我尝试做的一个例子: 当有人访问mydomain.com/any-url时 他应该被重定向到urltracker.com/events/redirect_to=http%253A%252F%252fsecondomain.com%252Fany url

我目前正在使用

RewriteEngine on 
RewriteRule ^(.*)$ http://urltracker.com/events/redirect_to=http%253A%252F%252Fwww.seconddomain.com%252F$1 [R=301,L]
但这段代码将我重定向到urltracker.com/events/redirect_to=http53a522f52fsecondomain.com52Fany-url

每%2消失一次。你们能帮我更改htaccess,这样它就不会取代%2吗? 谢谢

编辑:我实际需要的是在重定向到=双重编码后使用所有特殊字符。

您可以检查:


可能您需要启用AllowEncodedsLash,因为我认为您的“redirect_to”参数中的斜杠有问题。

我想我会尝试在PHP中使用斜杠。通过使用\,我成功地将字符保持为双编码形式,问题是我希望任意url部分只使用双编码斜杠,而不是每个特殊字符。目前,它将对每个特殊字符进行双重编码,我不认为我可以选择只对斜杠进行编码。

不,它不起作用。我基本上需要的是在redirect_to=double encoded之后使用所有特殊字符。请尝试使用B标志:只有在apache 2.2Doesn没有更改任何内容之后,我认为AllowEncodedSlash处于禁用状态,并且我没有访问httpd.conf的权限。这里有一种不编辑apache配置但使用php的方法。。。1使用$\u SERVER['request\u URI']从请求获取url路径2使用base64和urlencode转换它3使用headerLocation:$url_编码;死亡4更新urltracker上的代码以处理base64字符串。