首页 > 解决方案 > 修改我的 htacess 以重定向到 SSL URL

问题描述

我现在的.htaccess样子是这样的:

Redirect 301 /~mysite-net/vlog http://www.example.net/vlog
Redirect 301 /~mysite-net/pp https://www.example.net/pp
Redirect 301 /~mysite-net/pp02 https://www.example.net/pp02
Redirect 301 /~mysite-net/pp03 https://www.example.net/pp03
Redirect 301 /~mysite-net/ http://www.example.net/

RewriteEngine On
RewriteRule ^([A-Za-z0-9]+).html$ https://www.example.net/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.*?)/?$ index.php?s=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ index\.php\?s=([^\s]*)
RewriteRule ^/?(.*?)/?$ %1?%2%3 [L,R=301]

这符合预期,所以没问题。但是,现在我需要对其进行修改,使其始终重定向到我网站的 SSL 版本。这意味着无论用户是否键入 http,它总是会将他们重定向到 https。

所以我只是在底部添加了这些行:

RewriteCond %{HTTP_HOST} ^example\.net [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.net/$1 [R,L]

但它不起作用。我错过了什么?

标签: .htaccesssslmod-rewrite

解决方案


也许这可能是工作我想你忘了放 RewriteCond %{HTTPS} !on

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

推荐阅读