我已经在安装了ssl cirtificate的子域beta.mydomain.com上托管了opencart网站。
我要强制使用https和www。有人输入beta.example.com时应将他们带到https://www.beta.example.com
我很讨厌.htaccess条目
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example.com\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
RewriteBase /
我不明白这里出了什么问题。预先感谢。
答案 0 :(得分:1)
好吧,您在示例中使用的域不是beta.example.com
,而是example.com
,您应该将其更改为所需的域。像这样:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.beta\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.beta.example.com/$1 [L,R=301]
RewriteBase /
您将RewriteBase
用于什么?
我个人喜欢使用以下过程:
类似的东西:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
如果您尚未检查它,this GitHub Repository上有一些有关.htaccess的有用信息。
答案 1 :(得分:0)
最简单的方法是在主目录中更新config.php文件。
我面前没有它,但是您想将HTTP和HTTPS URL更改为“ https://www.beta.example.com”。
答案 2 :(得分:0)
用于htaccess
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^ https://www.yoursite.com%{REQUEST_URI} [NS,R,L]
备用htaccess代码
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
用于php重定向 打开index.php文件 找到
<?php
在之后添加
if (substr($_SERVER['HTTP_HOST'], 0, 4) === 'www.') {
header('Location: http'.(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 's':'').'://' . substr($_SERVER['HTTP_HOST'], 4).$_SERVER['REQUEST_URI']);
exit;
}