【发布时间】: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