Opencart SSL htaccess
Opencart SLL httpaccess
我在英国的虚拟主机上安装了 Opencart 3.0.2.0,123-reg。 SSL 似乎安装正确,因为当我输入完整的 https 包含域名时,所有站点都是安全的。但是,如果我只输入域名,就永远不会访问安全站点。
我尝试更改 .httpaccess.txt 但 none 我发现有效。
这就是我现在必须强制加载 https:
# Force HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
有人可以帮助我吗?
我缺少什么设置?
托管公司可能没有正确设置某些内容吗?
谢谢
听起来您正在尝试使用 opencart 的 htaccess 文件,而不是您所在域的 htaccess 文件。我不得不重新阅读你最初的 post 才能最终弄清楚这一点。请改为编辑您域的 htacess 文件。如果您没有 htaccess 文件,那么您需要创建一个。
这通常是您域的 htaccess 文件中使用的内容(不是 opencart 的 htaccess)。我在这里使用 example.com 进行演示,但将其替换为您的域。这还假设您将 OC installation/store 保存在 subdirectory/folder 中(通常的最佳实践)并且它在 www.example.com/store 上被访问。让我知道这个是否奏效。就我而言,如您所见,还必须使用顶部的选项 +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/ [R,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/store/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /store/
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ store/index.php [L]
我在英国的虚拟主机上安装了 Opencart 3.0.2.0,123-reg。 SSL 似乎安装正确,因为当我输入完整的 https 包含域名时,所有站点都是安全的。但是,如果我只输入域名,就永远不会访问安全站点。 我尝试更改 .httpaccess.txt 但 none 我发现有效。 这就是我现在必须强制加载 https:
# Force HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
有人可以帮助我吗? 我缺少什么设置? 托管公司可能没有正确设置某些内容吗? 谢谢
听起来您正在尝试使用 opencart 的 htaccess 文件,而不是您所在域的 htaccess 文件。我不得不重新阅读你最初的 post 才能最终弄清楚这一点。请改为编辑您域的 htacess 文件。如果您没有 htaccess 文件,那么您需要创建一个。
这通常是您域的 htaccess 文件中使用的内容(不是 opencart 的 htaccess)。我在这里使用 example.com 进行演示,但将其替换为您的域。这还假设您将 OC installation/store 保存在 subdirectory/folder 中(通常的最佳实践)并且它在 www.example.com/store 上被访问。让我知道这个是否奏效。就我而言,如您所见,还必须使用顶部的选项 +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/ [R,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/store/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /store/
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ store/index.php [L]