![更改 htaccess 文件以重定向到 HTTPS?](https://linux22.com/image/728178/%E6%9B%B4%E6%94%B9%20htaccess%20%E6%96%87%E4%BB%B6%E4%BB%A5%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20HTTPS%EF%BC%9F.png)
我想每个人访问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 的地方。