我有几个具有相同子域的域,可以安全地访问,也可以不安全访问。我需要将来自重定向 .somesite.com的每个请求重定向到重定向到安全站点。我需要原始网址,域名,以及网站是否被要求保密。
http://redirect.site1.com/page?id=1
重定向到
https://process.site4.com/page?id=3&domain=的 a.site1.com &安培;安全= 0
和
https://redirect.site2.com/page?id=2
重定向到
https://process.site4.com/page?id=3&domain=的 a.site2.com &安培;安全= 1
和
http://redirect.site3.com/page?id=3
重定向到
https://process.site4.com/page?id=3&domain=的 a.site3.com &安培;安全= 0
和
http://www.site3.com/page?id=3
仍为
答案 0 :(得分:1)
我假设你想在重定向中匹配id查询字符串吗?
在文档根目录中的.htaccess文件中尝试此操作(或在服务器/ vhost配置中,将^page$
正则表达式更改为^/page$
):
RewriteEngine On
# check if secure= is already set, and set it either to 1 or 0
RewriteCond %{QUERY_STRING} !secure=
RewriteCond %{HTTPS} on
RewriteRule ^page$ /page?%{QUERY_STRING}&secure=1 [L]
RewriteCond %{QUERY_STRING} !secure=
RewriteCond %{HTTPS} off
RewriteRule ^page$ /page?%{QUERY_STRING}&secure=0 [L]
# check if the host starts with a "redirect." and match against the "/page" URI
RewriteCond %{HTTP_HOST} ^redirect\.(.+)$ [NC]
RewriteRule ^page$ https://process.site4.com/page?domain=a.%1 [QSA,R,L]
最后一条规则中的QSA确保将'secure ='和原始'id ='查询字符串参数添加到URL上。