仅限 Apache 基本身份验证 SSL

标签 apache mod-rewrite basic-authentication mod-ssl

我得到了 Apache 在 Windows 上运行的设置,我们有两个文件夹需要使用 .htpasswd 进行基本身份验证。

首先,我测试了身份验证是否有效:

AuthUserFile E:/path-to/.htpasswd
AuthType Basic
AuthName "Secure area"
Require valid-user

这很好用,但当然没有通过 SSL 发送凭据。我尝试使用 RewriteRule 将任何没有 HTTPS 的请求发送到这两个文件夹中的 HTTPS,这需要用户登录两次 - 一次通过 HTTP,一次通过 HTTPS。

我发现很多人都有这个问题,大多数人使用的解决方案是这样的:

SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire  %{HTTP_HOST} eq "www.domain.com"
AuthUserFile E:/path-to/.htpasswd
AuthName "Secure area"
AuthType basic
require valid-user
ErrorDocument 403 https://www.domain.com/secure-area

所以我将其放入两个安全文件夹中的 htaccess 中。这要求用户通过 HTTPS 登录一次,当然,它不会将它们发送到他们请求的文件。相反,它将它们发送到文件夹的根目录。

我们经常将用户定向到这些目录中的特定文件,但在尝试执行此操作时,我找不到任何可以通过 HTTPS 使用基本身份验证对他们进行身份验证的东西。这在 Apache 上可行吗?

谢谢, 乔纳森

最佳答案

如果它是针对特定文件的,您可以将其包装在

<p></p>

<p></p><div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code><files *.php>
  
</files></code></pre>
</div>
</div>
<p></p>

</pre></code>

或者其他什么,看看这是否有所不同,因为它将对请求的文件而不是该文件所在的目录进行身份验证?

关于仅限 Apache 基本身份验证 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9265146/

相关文章:

apache - 证书不包含与服务器名称匹配的 ID

macos - 在Mac上使用不同子目录设置虚拟主机

php - 重写后无法访问 $_GET

c# - 如何向我的 SOAP 添加 Basic Auth Header?

c# - 如何从 header 中检索基本身份验证凭据?

apache - NetBeans TomCat Servlet 通过互联网访问

java - 无法登录 Kerberos 背后的 Jenkins

php - 除非首字母大写,否则 Mod_rewrite 不适用于某些规则? HTTPS服务器

angularjs - 如何在 apache htaccess 中为 angularjs 应用程序重写 url

java - 针对特定目录的 Jetty9 基本身份验证