1

我目前正在运行一个用struts编写的网站。我正在使用 Apache Web 服务器并使用 AJP 将我的 Web 应用程序代理传递到 Apache Tomcat 服务器。

我的服务器是托管在亚马逊的 Ubuntu 服务器。我能够使用 http 成功运行我的 Web 应用程序。

现在我计划为上述 Web 应用程序实现 SSL。我已完成所有 SSL 实施步骤,现在我可以使用 https 成功访问我的 Web 应用程序,即 https://{MY_APPLICATION_URL}

现在的问题是:当用户输入我的应用程序 URL(如 http://{MY_APPLICATION_URL} 或 {MY_APPLICATION_URL})时,我需要重定向并使其仅使用 https://{MY_APPLICATION_URL}。不得存在 http 访问。

我找到了以下链接:http ://www.sslshopper.com/apache-redirect-http-to-https.html并在 apache 服务器中安装了重写模块(通过 webmin)。然后在我的应用程序的虚拟主机中添加以下行(编辑指令)。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

即使经过上述重定向,当用户输入 http://{MY_APPLICATION_URL} 或 {MY_APPLICATION_URL} 时,它也会显示我的 apache 服务器的默认欢迎页面。但是,当我输入 https://{MY_APPLICATION_URL} 时,我能够成功访问我的 Web 应用程序。

谁能指导我哪里做错了。

谢谢你。

4

3 回答 3

3

这个解决方案帮助了我。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://domain.name/$1 [R,L]
</IfModule>

我希望它对你也有帮助。

于 2013-07-05T07:52:46.257 回答
0

在服务器版本上与我合作:Apache/2.4.6 (CentOS)

将其添加到文件 /etc/httpd/conf/httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]
</IfModule>

或者使用 php

<?php
function redirectTohttps() {
if($SERVER['HTTPS']!=”on”) {
$redirect= “https://”.$SERVER['HTTPHOST'].$SERVER['REQUEST_URI'];
header(“Location:$redirect”); } }
?>
于 2018-04-29T03:06:59.403 回答
0

你可以很容易地做到这一点:

  • Webmin > 配置 Webmin > Ssl 配置

  • 在 > 将非 SSL 请求重定向到 SSL 模式中检查是吗?

  • 重新加载浏览器并清除缓存(Ctrl + Shift +R)

于 2021-01-17T00:40:56.007 回答