【问题标题】:Redirecting http to https for a directory, via .htaccess, using mod_alias only仅使用 mod_alias 通过 .htaccess 将目录的 http 重定向到 https
【发布时间】:2011-02-07 07:20:19
【问题描述】:

我有一个常见的问题是希望将对某个受限访问目录的请求从 http 重定向到 https,以便以安全的方式发送用户的登录凭据。

但是,我的服务器上没有启用 mod_rewrite。我只有 mod_alias。这意味着我必须使用 RedirectMatch 命令。我不能使用使用 RewriteCond 和 RewriteRule 的常用解决方案。

(关于政治的说明:我是一个非常大的组织中的小型子站点维护人员,因此服务器管理员不太可能愿意为我更改服务器配置!)

以下行有效,但形成了一个无限循环(因为重写的 URL 仍然被初始正则表达式捕获):

RedirectMatch permanent ^/intranet(.*)$ https://example.com/intranet$1

我的一位内部 IT 人员建议我通过将文件移动到具有新名称的新目录(例如 /intranet2/)来避免无限循环。这对我来说似乎很丑陋。人们仍然可以通过直接访问http://example.com/intranet2/ 来意外/故意恢复到不安全的连接。

然后我尝试了这个,但是没有用:

RedirectMatch permanent ^http:(.*)/intranet(.*)$ https://example.com/intranet$1

我怀疑它不起作用,因为第一个参数必须是根目录的文件路径,所以它不能以“http:”开头。

那么:有什么更好的方法可以做到这一点吗?

【问题讨论】:

    标签: .htaccess https redirect mod-alias


    【解决方案1】:

    mod_alias 指令适用于请求 URI(URL 中域名之后的内容),它们不是路径或 URL。您无法匹配该方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多