我在英国的123-reg网站托管服务器上安装了Opencart 3.0.2.0。 SSL似乎已正确安装,因为当我键入完整的https包含的域名时,所有站点都是安全的。但是,如果我只输入域名,则永远不会进入安全站点。 我尝试更改.httpaccess.txt,但发现没有任何效果。 这就是我现在要强制加载https:
# Force HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
有人可以帮我吗? 我缺少什么设置? 托管公司是否可能未正确设置某些内容? 谢谢
答案 0 :(得分:0)
听起来您正在尝试使用opencart的htaccess文件,而不是域的htaccess文件。我必须重新阅读您的原始帖子才能最终解决。请改为编辑您域的htacess文件。如果您没有htaccess文件,则需要创建一个文件。
这通常是您域的htaccess文件中使用的(不是opencart的htaccess)。我在此处出于说明目的使用example.com,但将其替换为您的域。这还假定您将OC安装/存储保留在子目录/文件夹中(通常是最佳实践),并且可以在www.example.com/store中进行访问。让我知道这个是否奏效。就我而言,也必须使用顶部的Options + FollowSymlinks。但不确定是否需要,因为它取决于您使用的主机。
为了更好地解释您在此处看到的内容,HTTPS使用默认端口号443,HTTP使用80。因此,您强制端口80重定向到HTTPS。涉及“ REQUEST_URI”的行指向您的商店目录。因此,目录中的所有文件均为HTTPS。最后一行还设置访问者在输入并进入“ www.example.com”时将自动定向到的页面,该页面最终将是www.example.com/store/index.php。如果您的域的子目录中未安装OC,则需要根据需要进行调整。
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/store/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /store/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ store/index.php [L]