如何通过.htaccess配置robots.txt从http到https的重定向
.htaccess robots.txt HTTPS重定向配置方案
原配置失效原因
- 缺少HTTP协议判断条件,会匹配ekb.example.com下所有HTTP/HTTPS的robots.txt请求,容易触发死循环
- 跳转目标配置错误,不符合你指定跳转到ekb子域HTTPS路径的需求
- 未覆盖spb.example.com的跳转规则
正确配置
首先确认你的服务器已开启mod_rewrite模块,然后在.htaccess文件中添加如下规则:
RewriteEngine On # 处理ekb.example.com的http robots.txt跳转 RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^ekb\.example\.com$ [NC] RewriteRule ^robots\.txt$ https://ekb.example.com/robots.txt [R=301,L] # 处理spb.example.com的http robots.txt跳转 RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^spb\.example\.com$ [NC] RewriteRule ^robots\.txt$ https://ekb.example.com/robots.txt [R=301,L]
规则说明
RewriteCond %{HTTPS} off仅匹配HTTP协议的请求,不会影响已有的HTTPS请求[NC]标记表示域名匹配不区分大小写[R=301,L]表示返回301永久重定向,且匹配到该规则后不再执行后续重写规则
注意:301重定向会被浏览器长期缓存,修改配置后请用无痕模式测试,避免旧缓存导致结果不符合预期。
内容的提问来源于stack exchange,提问作者Ruslan
相关产品推荐
相关产品推荐

