【问题标题】:Redirect secured domain to secured subdomain using htaccess使用 htaccess 将安全域重定向到安全子域
【发布时间】:2016-05-16 14:24:51
【问题描述】:

我有 3 个域和一个主机。我正在尝试通过 htaccess 为我的所有三个域使用相同的主机。因此,我在与托管链接的域上创建了一个具有该名称的子域,如下所示。

www.site1.com [与主机关联的主域]

site2.site1.com [www.site2.com 的子域]

site3.site1.com [www.site3.com 的子域]

我想要实现的是,用户不应该去子域site2.site1.com,而是他们只能去www.site2.com,请求将被发送到后端的site2.site1.com

到这里为止,一切都已经完成并且运行良好。之后唯一的问题是,当我在现场添加SSL 时。对于所有这些域和子域,我都有SSL。如果用户访问非 ssl,那么他应该被重定向到 SSL 之一。有些 SSL 运行良好,但是当我为所有 SSL 添加 SSL 时,我开始收到 500 错误。

这是我的.htaccess 文件

RewriteEngine On
DirectoryIndex index.php

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

RewriteCond %{HTTP_HOST} ^site2.com
RewriteRule ^(.*) https://site2.site1.com/$1 [P]
RewriteCond %{HTTP_HOST} ^www.site2.com
RewriteRule ^(.*) https://site2.site1.com/$1 [P]

RewriteCond %{HTTP_HOST} ^site3.com
RewriteRule ^(.*) https://site3.site1.com/$1 [P]
RewriteCond %{HTTP_HOST} ^www.site3.com
RewriteRule ^(.*) https://site3.site1.com/$1 [P]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

当我在重定向链接上添加https 时,它开始给我500 错误,而当我重定向到http 时,它不会加载我的页面,因为非安全站点http://site2.site1.com 将被加载保护https://www.site2.com,结果,什么都不会显示。

在这里我需要帮助来解决这个问题。我查看了不同的问题,但没有发现任何与我相关的问题,因为我需要让我的.htaccess 使用重定向和SSL。另外,我还需要重定向到www一个,如果没有添加在URL中。

任何帮助将不胜感激。

【问题讨论】:

    标签: apache .htaccess redirect ssl subdomain


    【解决方案1】:

    就像,我在这里经历的所有时间都是我自己解决了我的问题。我的问题的解决方案如下htaccess

    RewriteEngine On
    DirectoryIndex index.php
    
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    RewriteCond %{HTTP_HOST} ^site2.com
    RewriteRule ^(.*) site2/$1
    RewriteCond %{HTTP_HOST} ^www.site2.com
    RewriteRule ^(.*) site2/$1
    
    RewriteCond %{HTTP_HOST} ^site3.com
    RewriteRule ^(.*) site3/$1
    RewriteCond %{HTTP_HOST} ^www.site3.com
    RewriteRule ^(.*) site3/$1
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    

    以这种方式,而不是将 URL 指向具有 httpssubdomain,而是将其引用到目录,因为路径将相同,现在当我输入带有 httpsURL 页面打开并且不要给出任何错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2011-09-19
      • 2014-08-19
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多