Apache 如何编写重定向到另一个域的.htaccess规则,同时保留和映射文件路径

Apache 如何编写重定向到另一个域的.htaccess规则,同时保留和映射文件路径,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我正在尝试编写一个.htaccess来将我站点上的URL重定向到另一个站点上的URL,同时保留文件路径的一部分,并将文件路径的另一部分转换为查询字符串值。以下是我想做的两个例子: 示例#1: 我的站点上的文件路径:“/redirects/025/025702/025702\u 03/file01.ts/AAA/BBB/CCC” 重定向到:“ 示例2: 我的站点上的文件路径:“/redirects/000/0007001/0007001_01/file02.ts/DDD/EEE/FFF” 重定向到

我正在尝试编写一个.htaccess来将我站点上的URL重定向到另一个站点上的URL,同时保留文件路径的一部分,并将文件路径的另一部分转换为查询字符串值。以下是我想做的两个例子:

示例#1:

我的站点上的文件路径:“/redirects/025/025702/025702\u 03/file01.ts/AAA/BBB/CCC” 重定向到:“

示例2:

我的站点上的文件路径:“/redirects/000/0007001/0007001_01/file02.ts/DDD/EEE/FFF” 重定向到:“

请注意,在上述场景中,“025/025702/025702_03”表示的路径部分可能会更改,但将保持相同的结构。此外,路径中映射到文件和查询字符串值的部分(即“file01.ts/AAA/BBB/CCC”)中的值也可以更改,同时保持相同的结构

我试过,但没能找到最好的方法。请注意,性能非常重要。所以,我正在尽可能地提高效率


提前感谢您帮助编写适当的htaccess规则。

您可以使用mod_别名或mod_重写。您可以在文档根目录的htaccess文件中添加以下规则:

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

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,并将重写规则添加到您可能已经有的规则之上