2013-11-26 20 views
1

我试图写一个.htaccess来将我的网站上的URL重定向到另一个网站上的URL,同时保留部分文件路径,并且将文件路径的另一部分转换为查询字符串值。这里有什么两个例子我想做的事:我的网站上如何写保存和映射文件路径时重定向到另一个域的.htaccess规则

文件路径:

例子#1“/redirects/025/0257002/0257002_03/file01.ts/AAA/BBB/CCC” 重定向到: “http://otherdomain.com/025/0257002/0257002_03/file01.ts?Policy=AAA&Key-Pair-Id=BBB&Signature=CCC

例2:

文件路径在我的网站: “/redirects/000/0007001/0007001_01/file02.ts/DDD/EEE/FFF” 重定向到:“http://otherdomain.com/000/0007001/0007001_01/file02.ts?Policy=DDD&Key-Pair-Id=EEE&Signature=FFF

P1请注意,在上述情况下,由“025/0257002/0257002_03”表示的路径部分可能会发生变化,但会保持相同的结构。另外,映射到文件和查询字符串值(即“file01.ts/AAA/BBB/CCC”)的路径部分中的值也可以更改,同时保持相同的结构。

我试过了,但未能弄清楚这样做的最佳方法。请注意,表现非常重要。所以,我试图尽可能高效。

在此先感谢您编写相应的htaccess规则。

回答

0

您可以使用mod_alias或mod_rewrite。您可以在htaccess文件在文档根位置添加下列规则:

RedirectMatch 301 ^/redirects/([0-9/_]+)/([^/]+)\.ts/([^/]+)/([^/]+)/([^/]+)$ http://otherdomain.com/$1/$2.ts?Policy=$3&Key-Pair-Id=$4&Signature=$5 

或者使用mod_rewrite:

RewriteEngine On 
RewriteRule ^redirects/([0-9/_]+)/([^/]+)\.ts/([^/]+)/([^/]+)/([^/]+)$ http://otherdomain.com/$1/$2.ts?Policy=$3&Key-Pair-Id=$4&Signature=$5 [L,R=301] 

如果你已经重写你的htaccess文件的规则,你要坚持使用mod_rewrite并将重写规则添加到您可能已有的任何规则之上。

相关问题