我有一个常见问题是希望将某个受限访问目录的请求从 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:”开头。
所以:任何更好的想法如何做到这一点?