我有一个httpd.conf:
.....
Listen eagnmnmed338:9080
Listen eagnmnmed338:9443
.....
LoadModule rewrite_module modules/mod_rewrite.so
.....
<VirtualHost eagnmnmed338:9080>
RewriteEngine On
# Disable Trace and Track
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
# restrict to HTTP 1.1
RewriteCond %{THE_REQUEST} !HTTP/1\.1$
RewriteRule .* - [F]
</VirtualHost>
<VirtualHost eagnmnmed338:9443>
.....
</VirtualHost>
.....
它同时适用于http和https。
我需要将http请求重定向到https。
我添加:
RewriteEngine On
RewriteCond %{SERVER_PORT} =9080
RewriteRule ^http://%{SERVER_NAME}%{SERVER_PORT}%{REQUEST_URI} https://%{SERVER_NAME}:9443/%{REQUEST_URI} [R,L]
在全球范围内9080定义上的虚拟主机之前。
它不会重定向。
我也添加
RewriteRule ^http://%{SERVER_NAME}%{SERVER_PORT}%{REQUEST_URI} https://%{SERVER_NAME}:9443/%{REQUEST_URI} [R,L]
在9080 def的范围内,但不起作用。
任何建议都值得赞赏。
[[某些背景:http(端口80)请求将首先发送到netsscaler,netscaler会将请求作为9080上的负载平衡定向到主机。
感谢因为您已经有两个虚拟主机,所以无论如何都不需要检查端口或有关请求的其他任何内容。