1

我有一个常见问题是希望将某个受限访问目录的请求从 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:”开头。

所以:任何更好的想法如何做到这一点?

4

1 回答 1

0

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

于 2011-02-07T07:26:16.533 回答