![]() |
1
10
在进行基本身份验证之前,有一个相对流行的黑客强制使用HTTPS。我第一次在这里看到它: http://blog.jozjan.net/2008/02/htaccess-redirect-to-ssl-https-before.html 它涉及使用自定义错误文档来处理HTTPS检查失败后发生的任何情况。 例如,我有一个页面需要强制打开HTTPS,所以我在.htaccess文件中这样做:
也就是说: 如果请求的页面是“secure page.php”-如果不是https,则重定向到自定义的“错误页面”-“错误页面”实际上只是页面的https版本-在第二个请求中,由于https检查现在通过,请执行基本身份验证:) 您可以将这个概念扩展到一个目录或其他用例-您的自定义“错误页”可以是一个重定向到正确的https URL的php页面,或者像上面链接中那样的cgi脚本… |
![]() |
2
4
我遇到了同样的问题,最终找到了一个难看的解决方案,但它奏效了。将rewrite规则放入httpd.conf中的目录指令或conf.d文件之一(即“主”服务器配置中)。然后,将auth*和require行放入目录指令中
里面
这个
对我来说,这意味着创建一个文件
…然后在内部添加以下内容
这样做使得Apache将rewriterule应用于所有请求,而auth要求仅适用于443虚拟主机中的请求。 |
![]() |
3
4
基于SiliconRockstar的答案,我添加了一个PHP脚本,它可以在您希望强制使用SSL的情况下工作。 全部的 这些文件,不仅仅是SiliconRockstar显示的一个文件案例。这里,它与htaccess文件一起工作。 保护整个目录的htaccess:
由htaccess调用的php(此示例htaccess中为php给定的路径是站点的根目录),这将强制在您调用的URL上使用https:
如果您的站点没有SSL证书,则必须安装一个。如果这是您唯一的用途,您可以安装自签名证书。在CPanel VPS上,您的站点位于专用IP上,这需要一些时间:在WHM中,访问 一个。生成SSL证书和签名请求 然后 二。在域上安装SSL证书 |
![]() |
4
2
使用基本身份验证保护内容永远不会在HTTP上安全工作。 一旦用户输入了他们的用户名和密码,它将不加密地发送给该站点的每个页面视图,而不仅仅是发送给用户提示的时间。 您必须将HTTP上的请求视为未经身份验证,然后 全部的 通过https登录资料。 很多网站使用https登录-使用表单和cookie,而不是基本身份验证-然后转到http。这意味着他们的“您已登录”cookie将以未加密的方式发送。每一个有价值的目标都因为这个被黑客攻击了,Gmail现在正在切换到完整的HTTPS,其他人也将跟随。 您不具备与其他人相同的缩放问题,这些问题使它们远离计算成本更高的HTTPS。如果您的主页支持HTTPS访问,请在整个过程中使用它。 |
![]() |
5
1
如果您将重写规则放在主配置中的任何或类似配置之外,那么将在身份验证之前完成重写。 参见 Rewrite Tech |
![]() |
6
0
把您的身份验证部分放在
|
![]() |
7
0
我是这样绕过它的。只允许非SSL,因为它将被重定向,然后需要在SSL上进行一次身份验证…
|
![]() |
8
0
我知道这是一个古老的问题,但是我在一个简单的ht.access重定向上遇到了困难。在其他许多问题和答案之后,我最终把这个htaccess组合在一起,它按预期工作。
注意
这正是我所看到的许多其他答案所缺少的,因为它允许人们在使用HTTPS时直接进入。我的测试中缺少的另一部分是:
下面的代码片段允许非SSL客户端使用进行重定向。https env var是从mod_ssl为ssl客户机设置的。
|
![]() |
9
0
我有两个问题的答案,一个是2010年的心态,另一个是2012年后的心态。 要回答这个问题,就好像是2010年被问到的一样:使用两种不同的虚拟主机配置。
这个解决方案有点超出了问题的范围,因为这意味着“我只能修改
然而,我戴着2018年后的帽子,注意到这个问题是在Apache2.4(2012年初?)之前提出的。是时候更新了。引入Apache 2.4
总之:
|
![]() |
Coolen · 通过htaccess重定向并删除部分链接 3 年前 |
![]() |
Sebastian · 带有PHP菜单的干净/漂亮URL 7 年前 |
![]() |
imagina · 合并两个。htaccess指令整合为一个 7 年前 |