我有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
时,它将不会加载我的页面,因为非安全的网站{ {1}}将被加载到安全http://site2.site1.com
上,结果将不会显示任何内容。
我需要帮助才能解决此问题。我查看了不同的问题但未找到任何与我相关的问题,因为我需要让https://www.site2.com
使用重定向和.htaccess
。此外,我还需要重定向到SSL
,如果没有添加到网址中。
任何帮助将不胜感激。
答案 0 :(得分:0)
就像我在这里经历的所有时间一样,我自己也解决了我的问题。我的问题的解决方案是以下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]
通过这种方式,我没有将网址指向subdomain
https
,而是将其引用到该目录,因为路径将相同,现在当我输入URL
时打开https
页面并且不会出现任何错误。