当前位置: 首页 > 面试题库 >

强制特定页面将HTTPS与angularjs一起使用

吕衡
2023-03-14
问题内容

在我们的应用程序中,我们有一个要使用SSL的付款页面,因为我们正在处理信用卡信息。我们已经为apache制定了重写规则,以将对特定页面的请求重定向到HTTPS
-它处理对支付页面(http://oursite.com/pay)的任何直接请求。

但是,我们网站中的大多数导航都是通过相对URL并在angularjs中states使用ui- router而完成的,我们发现apache不能捕获这些请求,因此可以在没有SSL的情况下提供页面。

EX如果用户单击链接到ui-sref='pay' ui-router会加载模板并刷新状态-
绝对不会向服务器发出新URI的请求,因此apache无法重定向到https

有没有一种方法可以强制ui-router(或通常为angular)强制状态使用HTTPS,而无需更改所有链接以重新加载整个站点?

当然这也可能是我们重写规则的一个缺点…这就是到目前为止的内容

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} /pay
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]

第二组规则是为我们的应用强制执行html5mode。

RewriteCond %{REQUEST_FILENAME} !-f到位,以便angular无需SSL即可获取该州的付款模板。这个可以吗?


问题答案:

我有一个类似的问题,尽管在SPA应用程序中使用了$ routeProvider。我所做的是在控制器内部实施重定向:

var forceSSL = function () {
    if ($location.protocol() !== 'https') {
        $window.location.href = $location.absUrl().replace('http', 'https');
    }
};
forceSSL();

尽管这确实会重新加载所有资源。但是,切换到SSL模式时只会发生一次。

注意,该函数实际上在服务中,因此可以在任何地方调用。

我希望这有帮助。



 类似资料:
  • 问题内容: 我有一台使用HTTPS且使用Firefox的Grizzly制造的REST服务器。这是代码: 现在,我尝试用Java达到它: 得到: 从我在网上找到的示例来看,似乎需要设置一个Truststore,然后再设置某种TrustManager。对于我这个简单的小项目,这似乎需要大量代码和设置工作。有没有更简单的方法可以说..我信任此证书并指向.cert文件? 问题答案: 当您说“是否有一种更简

  • 我有一个问题,在我的应用程序Android中使用soap请求。我使用Ksoap2库。这是我的代码: }

  • 问题内容: 我正在设置信用卡处理程序,需要对CURL使用替代方法。当我使用测试服务器(未调用SSL URL)时,以下代码运行良好,但是现在当我在使用HTTPS的工作服务器上对其进行测试时,它失败,并显示错误消息“无法打开流”。 问题答案: 请尝试以下脚本,以查看您的php脚本是否有https包装器。 输出应该是这样的

  • 编辑:TL;DR 是否有人在angularjs中使用Magento Rest API,并能给我一些关于如何开始使用OAuth的提示? 我正在尝试使用magento Rest API和angularjs。我的问题是我甚至没有让启动endpoint工作。 要计算我使用https://github.com/bettiolo/oauth-signature-js签名: 我尝试了两种不同的方法: 1:使用授

  • 我正在尝试将pastebin api用于docs:pythonhttps://pastebin.com/doc_api.使用urllib库:https://docs.python.org/3/library/urllib.html. 这是我得到的错误: urlopen return opener中的文件“C:\Program Files\WindowsApps\PythonSoftwareFoun

  • 问题内容: 如何从一页导航到另一页。假设我有一个登录页面,在输入用户名和密码字段并单击提交按钮后,它需要验证,如果用户名和密码都正确,则需要进入主页。主页内容需要显示。我在这里发布代码。在浏览器中,URL不断变化,但内容没有变化。 index.html home.html test.js 问题答案: 正如@dfsq所说,您需要一个ng-view来放置新视图。当然,如果将ng- view添加到索引中