我的htaccess文件中有以下规则:
RewriteRule ^(.*)$ https://example.com/?http://%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [NE,R=302,L]
但我想根据使用的协议(HTTP或HTTPS)重定向用户。我试过这个:
RewriteRule ^(.*)$ https://example.com/?%{SERVER_PROTOCOL}://%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [NE,R=302,L]
但用户会被重定向到" https://example.com/?HTTP/1.1://example.com/anything?anything"
我不想将RewriteCond用于这样的简单任务,是否有任何我可以使用的变量,我的意思是,返回http或https?我在这里查看http://httpd.apache.org/docs/current/mod/mod_rewrite.html,但我不确定是否有。
答案 0 :(得分:2)
因为我要求用户@starkeen将他的评论作为答案发布,而他没有发布,我在这里发布。要捕获所使用协议的HTTP或HTTPS部分,可以使用%{REQUEST_SCHEME}。
但是我不建议使用它,因为我尝试了它并且它是错误的,在某些情况下甚至使用HTTPS它会掩盖它使用HTTP所以你应该在线使用其他替代品。