【发布时间】:2018-11-28 15:01:14
【问题描述】:
我有一些要添加 SSL 以实现最新合规性的站点,这些站点具有受保护的管理文件夹、全局根重定向
#重定向到ssl站点
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
导致访问者使用旧的 http: 链接到管理员到达 404 页面,因为重定向发生在早期。
我已通过在全局之前添加停止规则来为 firefox 修复此问题
# stop processing for admin
RewriteRule ^(admin)($|/) - [L]
和一个特定的重定向
RewriteCond %{HTTPS} off
RewriteRule ^admin/(.*)$ https://www.mysite.co.uk/admin/$1?%{QUERY_STRING} [NE,r=301,L]
但是在 chrome 中,目录停止失败并且特定的重定向被忽略,所以 chrome 访问者得到 404 而不是被重定向。
我尝试了多次添加到全局但没有工作 #重定向到ssl站点
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^admin(.*) [NC]
RewriteCond %{REQUEST_URI} !(.*)admin(.*) [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/].*)$ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
为什么firefox和chrome的行为不同,我以为是apache在处理,如何让chrome的行为像firefox?
【问题讨论】:
标签: apache .htaccess ssl redirect