在.htaccess中强制使用SSL和www


12

我正在寻找一种强制SSL和的方法www

我已经能够分别强迫两者,但是在一起我一直遇到重定向问题。下面的代码在处理这种格式的URL时起作用:http://example.com并正确地重定向到,https://www.example.com但是当传入的URL https://example.com不会转发到https://www.example.com-有任何建议吗?

编辑:它也应该发送http://www.example.comhttps://www.example.com

RewriteCond %{REMOTE_ADDR} !127\.0\.0\.0
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} !^www.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Answers:


7

第一行用于防止内部URL重写。这可能会导致显示不同的页面,因此我将其删除。

如果example.com通过HTTPS请求或不请求主机,它将被重写为https://example.com/。即,它重写http://example.comhttp://www.example.comhttps://example.comhttps://www.example.com于一个动作。

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

有关Apache 2.2的mod_rewrite的文档

如果您拥有的子域名forum.example.com,则第一个规则应为原样。否则,您也可以对否定匹配www.example.com



0

尝试这个:

RewriteCond %{REMOTE_ADDR} !127\.0\.0\.0
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} !^www.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

0

您还可以使用我使用并完美工作的以下代码行。

(如果不使用CloudFlare,请删除顶部的RewriteCond)

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"' [OR]
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

0

刚刚为我的网站实施了此操作。奇迹般有效!添加到我的.htaccess文件的顶部。重定向输入www或不输入www,http或https的人员的所有实例。

# BEGIN HTTPS Redirect
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
# END HTTPS Redirect

0

我测试了上面给出的所有建议,但没有一个涵盖整个场景。

我希望所有的访客去 https://www.example1.com/

其他用户提供的某些代码可以将非安全和/或非www URL 用作https://www.example1.com/,但是,它们都https://example1.com不能转换为“ www”。

我将自己的网站托管在GoDaddy上,以防万一。

这是为我工作的代码:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www.example1\.com$ [OR]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example1.com/$1 [L,R=301]

最后一行也可以是:

RewriteRule ^(.*)$ https://www.example1.com/$1 [R,L]

但是我使用代码“ 301”发送“ 永久移动 ” 消息,希望谷歌和其他搜索引擎可以更新旧链接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.