mod重写3个重定向到自己的子域(通用重定向)

时间:2018-12-14 17:55:50

标签: mod-rewrite url-redirection

当前我正在使用: RewriteCond%{HTTP_HOST} ^ sub1.test.example.net $ [NC] RewriteRule ^ /?$ https://sub1.test.example.net/folder1/folder2/app/nodes/dir1 [R,L] RewriteCond%{HTTP_HOST} ^ sub2.test.example.net $ [NC] RewriteRule ^ /?$ https://sub2.test.example.net/folder1/folder2/app/nodes/dir1 [R,L] RewriteCond%{HTTP_HOST} ^ sub3.test.example.net $ [NC] RewriteRule ^ /?$ https://sub3.test.example.net/folder1/folder2/app/nodes/dir1 [R,L]

我正在尝试将3个不同的env的通用规则浓缩为可能的2行,例如:

重写条件:sub1或sub2或sub3 重写规则:(sub1或sub2或sub3).example.net / folder1 / folder2 / app / nodes / dir1

我为成为新手而道歉,我已经阅读apache mod重写手册页了几天,但还没有破解。即使朝着正确的方向迈出了一步,也会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

如果您只想在特定子域上处理规则,则可以在每个条件之后添加[OR]标志,但是如果您只想匹配任何子域,则可以使用以下方法:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*).test.example.net$ [NC]
RewriteRule ^/?$ https://%1.test.example.net/folder1/folder2/app/nodes/dir1 [R,L]

例如,这会将http://sub777.test.example.net/?test重定向到https://sub777.test.example.net/folder1/folder2/app/nodes/dir1?test