【发布时间】:2017-04-27 00:52:39
【问题描述】:
我有一个我想要保护的网站目录。我正在使用 .htaccess 文件来强制执行 HTTP AUTH。我想强制通过 HTTPS 完成此 HTTP AUTH。
在这里查看有关堆栈溢出的各种解决方案是我的重点:
我在“top_secret”目录中有以下 .htaccess 文件:
SSLRequireSSL
ErrorDocument 403 /rd.php
AuthType Basic
AuthName "Secure Page"
AuthUserFile "/home/usr/.htpasswds/public_html/top_secret/passwd"
Require valid-user
然后我的根目录中有“rd.php”:
<?php
$path = "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if ( $_SERVER['SERVER_PORT'] == 80) {
header("Status: 302 Moved\n");
header("Location: ".$path."\n\n");
}
else {
header( "Content-type: text/html\n\n");
echo '?';
}
?>
这在我的台式计算机上运行良好,但是当我在 safari 中从我的 iphone 浏览到 top_secret 目录(到 HTTPS 或 HTTP 地址)时,我只得到一个问号返回。所以由于某种原因,我的 php 文件的 else 条件正在输出。
我不完全确定这意味着什么以及如何解决,任何帮助将不胜感激
【问题讨论】:
-
我已经回答了你的问题。如果您对我的回答不满意,能否告诉我原因,我会更新或解决您的疑虑?谢谢。
-
你只是要浪费你的赏金吗?我愿意为您更新我的答案,但如果没有您的反馈,我无法做到这一点。
-
假设 safari 浏览器由于
AuthType Basic的错误行为而通过 HTTPS 从Require指令中获取 403。
标签: apache .htaccess mod-rewrite url-rewriting http-authentication