Apache服务器如何排除kameras目录的HTTPS强制重定向?
解决Apache中排除指定目录HTTPS重定向的方法
你当前配置里的Redirect / https://www.example.de/是全局强制重定向,它的优先级比mod_rewrite规则更高,导致后面的RewriteCond规则完全无法生效,这是问题的核心。
正确的配置需要两步调整:
- 移除全局的
Redirect /指令,改用mod_rewrite统一处理重定向逻辑 - 编写精准的规则,排除
/kameras/目录下的所有请求
修改后的000-default.conf配置如下:
<VirtualHost *:80> # ServerName www.example.de ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteEngine on # 排除/kameras/目录及其下所有子内容 RewriteCond %{REQUEST_URI} !^/kameras(/.*)?$ # 匹配目标域名(支持example.de和www.example.de) RewriteCond %{SERVER_NAME} =example.de [OR] RewriteCond %{SERVER_NAME} =www.example.de # 执行HTTPS永久重定向 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
配置细节说明:
- 移除全局
Redirect /指令,避免覆盖后续重定向规则 RewriteCond %{REQUEST_URI} !^/kameras(/.*)?$:匹配所有不以/kameras/开头的请求,包括/kameras本身、子目录及文件- 用
[OR]连接两个域名条件,确保主域名和带www的域名都能触发重定向 - 保留
[END,NE,R=permanent]标记,保证重定向的永久性和URL格式正确性
修改完成后,执行以下命令重启Apache使配置生效:
sudo systemctl restart apache2
调整后,/kameras/目录下的所有页面会保持HTTP访问,不会被强制跳转到HTTPS,即可正常嵌入HTTP摄像头的iframe内容。
内容的提问来源于stack exchange,提问作者Michèle S.
相关产品推荐
相关产品推荐

