【问题标题】:Am I missing something for .htaccess redirect to https?我是否缺少将 .htaccess 重定向到 https 的内容?
【发布时间】:2019-01-21 14:16:00
【问题描述】:

我正在尝试将所有流量从 http 定向到 https:

www.example.com -> https://www.example.com

example.com -> https://example.com

服务器是在 Ubuntu 16.04 (setup tutorial used) 上运行 LAMP 的 AWS EC2 实例。

Let's Encrypt 为 example.com 和 www.example.com (tutorial used) 生成 SSL 证书。

我已经阅读了十几个 SO 答案和其他教程,但没有提供的 .htaccess 示例代码对我有用。这是我尝试过的一些列表,但没有成功(我尝试通过 SFTP 上传文件并通过 nano 进行 SSH 编辑):

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\. [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R]

,

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

,

RewriteEngine On
# https/http www -> https non-www
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# http non-www -> https non-www
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

,

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

,

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

,

RewriteEngine On
RewriteBase /
https://www.primesoft.in
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.%{SERVER_NAME}/$1 [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://www.%{SERVER_NAME}/$1 [R=301,L]

任何帮助将不胜感激。

【问题讨论】:

    标签: apache .htaccess http https lamp


    【解决方案1】:

    经过更多研究,事实证明 Apache 默认关闭了 .htaccess。这回答解决了它: .htaccess not being loaded in Ubuntu 14.04 (Apache 2.4.7)

    【讨论】:

      猜你喜欢
      • 2021-01-22
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 2018-07-03
      • 2017-06-18
      相关资源
      最近更新 更多