我的网站及其关联的别名域都有SSL证书。
我继承了一个由数据库支持的Laravel框架 - 它决定了在不同的域上呈现的页面。我希望相当标准。
强制重定向我强制使用以下方式强制重定向.htaccess中的主域名重定向:
# RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
所有精致和花花公子 - 这完美无缺。但是,访问https://www.mywebsite.co.uk/admin时,此重定向会停止访问并重定向到https://www.mywebsite.co.uk
如果我诚实,我从未遇到过这种行为,所以任何建议都会非常感激!
答案 0 :(得分:1)
替换
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
带
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}/\1 [L,R=301]
这将捕获您的页面并将页面附加到https://xxxxxxx/
而不是“RewriteCond%{HTTPS} off”您也可以将重写规则放在一个侦听http only()而不是一般配置中。
此外,您将松开将成为GET和body参数的POST。例如,如果你来自像
这样的形式<form method="POST" action="http://xxxxxx">
您的服务器将检测到它是http,因此会将重定向发送到https。浏览器将发送回https://但使用GET。此外,重定向删除查询的主体,所以如果那里有参数(或json),重定向将删除它。