更改 htaccess 文件以重定向到 HTTPS?

更改 htaccess 文件以重定向到 HTTPS?

我想每个人访问http://my-domain.com.au或者http://www.my-domain.com.au自动重定向至https://www.my-domain.com.au在我的(共享网络托管)域上,但是我还没有成功完成此操作。

首先,我尝试在 cPanel 中创建重定向,但这似乎没有任何效果。

然后我联系了我的主机,他表示我需要编辑我的“htaccess”文件......

该域名的原始“htaccess”文件包含:

RewriteEngine on

RewriteOptions inherit

AuthName "Restricted Area"
AuthUserFile "/home/CPANEL LOGIN USERNAME/.htpasswds/public_html/passwd"
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-SSL} off
RewriteCond %{HTTP_HOST} ^my-domain\.com\.au$ [OR]
RewriteCond %{HTTP_HOST} ^www\.my-domain\.com\.au$
RewriteRule ^(.*)$ "https\:\/\/www\.my-domain\.com\.au\/$1" [R=301,L]

我尝试用(来自 StackExchange)替换它:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^my-domain\.com.au$ [NC]
RewriteRule ^(.*)$ http://www.my-domain.com.au/$1 [R=301,L]

# check if https if off and check if the requested uri ends with login
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} login$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

和:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^my-domain\.com\.au$ [NC]
RewriteRule ^(.*)$ http://www.my-domain.com.au/$1 [R=301,L]

# check if https if off and check if the requested uri ends with login
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} login$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

然而到目前为止,“htaccess”文件的这些修改都没有任何效果……

任何有助于我实现目标的帮助都将不胜感激。

答案1

然而到目前为止,“htaccess”文件的这些修改都没有任何效果……

一点效果都没有?甚至改得简单一点,比如将所有流量重定向到单个页面?

如果是这种情况,那么你应该首先确认 .htaccess 是否包含“AllowOverride All”。默认值为“AllowOverride None”,这意味着服务器将完全忽略 .htaccess 文件。

# check if https if off and check if the requested uri ends with login
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} login$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

此重写规则仅适用于以单词“login”结尾的 URI。如果您打算将此规则应用于所有页面和所有访问者,则应删除第二个条件。

答案2

首先,我尝试在 cPanel 中创建重定向,但这似乎没有任何效果。

您实际上无法使用 cPanel 界面进行 HTTP 到 HTTPS 重定向,因此您输入的任何内容很可能都无法匹配。但是,cPanel 还将重定向指令放在文件末尾.htaccess(根据文档),这通常是外部重定向的错误位置,也可以解释重定向“不执行任何操作”。

cPanel 重定向界面非常有限。

答案3

另一个网站上的某个人帮助了我,答案是编辑“htaccess”文件,使其只包含以下内容:

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]

example.com 部分是您放置网站 URL 的地方。

相关内容