http到https通过.htaccess

fit*_*lla 63 .htaccess https redirect http

我已经看过现有的问题,但我并没有真正想到任何对我有用的东西.

我目前正在运行具有安全SSL证书的站点.它可以在https://www.example.co.uk访问.问题是该网站也可以访问http://www.example.co.uk - 我不希望这是可能的.我需要它从http重定向到https.

我在.htaccess文件中找到了这一段代码.

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.co.uk [NC] 
RewriteRule ^(.*)$ https://example.co.uk/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

当用户将example.co.uk输入到他们的地址栏时,这很好用,但我还需要添加某种条件语句,以便用户输入'www.example.co.uk'或' http:// www.example.co.uk '.

我尝试使用[OR]之类的东西,但最终会产生服务器错误.

任何帮助和建议表示赞赏.

干杯.

Blu*_*ict 162

请尝试以下方法:

 RewriteEngine On
 RewriteCond %{HTTPS} !=on
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Run Code Online (Sandbox Code Playgroud)

此外,您还可以根据端口号重定向,例如:

 RewriteCond %{SERVER_PORT} ^80$
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这会将端口80上收到的所有请求重定向到HTTPS.

  • 有人使用`[R,L]`与另一个使用`[R = 301,L]`的原因是什么? (5认同)
  • 谢谢!最简单的方法(使用.htaccess文件)从http://迁移到https://(一旦获得SSL证书) (2认同)

小智 13

在.htaccess文件中添加以下代码.

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)

使用您的网站域名更改example.com

可以从此处找到URL重定向教程 - 使用.htaccess文件将非www重定向到www和HTTP到HTTPS


小智 5

试试这个,我用它,它工作正常

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Run Code Online (Sandbox Code Playgroud)

来源: https: //www.ndchost.com/wiki/apache/redirect-http-to-https

(我尝试了很多不同的代码块,这个 3 衬垫工作完美)