我有一个网站托管在 /start/ 的服务器上。
在 Apache conf 文件中,我使用以下简单规则将所有对“/”的请求重定向到“/start/”:
RewriteEngine 开启 重写规则 ^/?$ /start/ [R]
当我访问“http://foo.bar/“浏览器重定向至”http://foo.bar/start/“ 成功地。
但是,当我访问“https://foo.bar/",浏览器不会重定向到 /start/,而是显示默认的 Apache 欢迎页面。
我必须做什么才能以特殊方式处理 https 请求?
注意:该网站可以通过 https 成功访问。例如:如果我直接访问“https://foo.bar/start/”,我看到了预期的页面。
完整的配置文件:
加载模块代理模块 /usr/lib/httpd/modules/mod_proxy.so RewriteEngine 开启 重写规则 ^/?$ /start/ [R] ProxyRequests 关闭 日志级别警告 代理 http://127.0.0.1:8083/ 命令拒绝、允许 允许所有人 /代理人 位置 /开始/ 代理通行证 http://127.0.0.1:8083/ ProxyPassReverse http://127.0.0.1:8083/ /地点
答案1
我不认为这是完整的配置,因为我没有看到 SSL vhost 定义。
如果这些语句在默认服务器配置中(即不在明确的 vhost 中),那么您需要输入RewriteOptions inherit
SSL vhost 定义。
如果它们位于特定的 vhost 配置中,那么您需要 (a) 将它们移动到默认服务器配置中并添加RewriteOptions inherit
SSL vhost 定义或 (b) 将它们复制到 SSL vhost 定义中。