【问题标题】:Redirecting sub-directories from http to https将子目录从 http 重定向到 https
【发布时间】:2014-12-28 05:21:50
【问题描述】:

我刚刚使用以下 htaccess 重写规则将我的网站从 http 重定向到 https

我的网站位于 public_html 下的文件夹中。假设文件夹名称为“mySitefolderName”

RewriteCond %{HTTP_HOST} ^mysite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.com$
RewriteRule ^/?$ "https\:\/\/www\.mysite\.com\/mySitefolderName\/" [R=301,L]

通过这条规则,我已经实现了将我的网站从 http 重定向到 https, 但是 Google 上指向“mySitefolderName”下的子目录的旧链接没有被重定向

例如,假设我在 google 上有这个旧链接: mysite.com\mySitefolderName\someSitePage.php

如果我从谷歌点击这个链接,它仍然会继续使用 http

我应该如何确保所有指向子目录的旧链接也都重定向到 https ?

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    /mySitefolderName/.htaccess中添加这条规则:

    RewriteEngine On
    
    # add https    
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=302,L]
    
    # add www    
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=302,L]
    

    【讨论】:

    • 感谢您的帮助。当我添加这个时,我的网站没有加载。我收到一条错误消息,指出我的网站存在重定向循环
    • 但它确实改变了旧的网址。 google上的旧链接改为https。
    • 不,我在“mySitefolderName”中根本没有 htaccess 文件。
    • 我的 public_html 的 htaccess 文件中有“RewriteOptions inherit”。
    • 感谢阿努巴瓦的建议。从 public_html 的 htaccess 中删除“重写选项继承”并将您的代码添加到 mySitefolderName 的 htaccess 中后,它现在可以工作了。但我还有一个问题。旧链接从 http 重定向到 https,但由于它们没有“www”前缀,因此在继续访问 https 之前我会收到证书警告。您能否修改上述规则,以便将“www”前缀也添加到旧链接中
    猜你喜欢
    • 1970-01-01
    • 2016-10-23
    • 2019-07-20
    • 2015-02-18
    • 2013-05-12
    • 1970-01-01
    • 2017-05-30
    • 2014-05-28
    • 1970-01-01
    相关资源
    最近更新 更多