如何修改.htaccess中现有重定向使其跳转至HTTPS(仅改特定规则)
解决HTTPS链接重定向后变为HTTP的问题
你原来的RedirectMatch规则导致协议降级,是因为mod_alias模块的重定向默认没有强制保留HTTPS协议。要仅修改这条规则实现HTTPS跳转,推荐用mod_rewrite替代,它能更灵活地控制协议和主机名:
修改后的规则
替换原来的RedirectMatch规则为以下内容:
RewriteEngine On RewriteRule ^(.+)/$ https://%{HTTP_HOST}/$1 [R=301,L]
规则说明
RewriteEngine On:开启mod_rewrite功能(若服务器未启用则需添加)^(.+)/$:匹配所有末尾带斜杠的URL路径,捕获斜杠前的完整路径部分https://%{HTTP_HOST}/$1:明确指定HTTPS协议,%{HTTP_HOST}自动获取当前请求的主机名,$1引用捕获的路径部分,保证跳转后的URL与原请求主机一致[R=301,L]:R=301代表永久重定向(测试阶段可改用R=302临时重定向),L表示执行完这条规则后停止后续规则处理
硬编码主机名的替代方案(不推荐)
如果不想使用mod_rewrite,也可以直接在RedirectMatch中指定HTTPS和具体主机名,但这种方式灵活性差,主机名变更时需手动修改:
RedirectMatch ^(.+)/$ https://example.com$1
内容的提问来源于stack exchange,提问作者stckvrw
相关产品推荐
相关产品推荐

