.htaccess在共享主机ssl上重写多个域

时间:2013-12-12 16:28:24

标签: .htaccess mod-rewrite webserver cpanel lamp

我在Apache Web服务器上有一个共享主机,可以通过cpanel访问我的主机帐户 主域abc.in用于访问存储站点文件的public_html文件夹。

我通过cpanel add on domains添加了一些与abc.com无关的域名。 他们就是                   def.com                   ghi.com                   jkl.com

所以我在共享主机上的域名文件系统将是这样的

/ public_html / abc.in

的文件或目录

添加域名也在

            /public_html/def.com/
            /public_html/ghi.com/
            /public_html/jkl.com/

所以你可能已经理解了工作系统..

def.com网站文件存储在public_html文件夹的子目录中,如上所示

类似地

ghi.com网站文件存储在public_html文件夹的子目录中,如上所示

jkl.com网站文件存储在public_html文件夹的子目录中,如上所示

现在问题是我需要强制主域名abc.com上的https / ssl

仅针对abc.in和support.abc.in发布ssl

对于abc.in和support.abc.in

的www版本无效

根据我的知识,网站应该只重定向到一个版本的网站。

是www版本或非www版本

所以我在cpanel中为abc.in启用了重定向

所以无论是www.abc.in还是abc.in它都只会去abc.in

如前所述,ssl仅发布给abc.in和support.abc.in

现在我想强制ssl到abc.in和support.abc.in的整个域

我为此尝试了cpanel重定向,但多次重定向使得循环和网站无法访问。

我在这里找到了一个.htaccess重写Force HTTPS and strip WWW without receiving Cert error

但启用它会使托管在子目录中的所有添加域重定向到ssl版本中的abc.in。

所以我只需要ssl访问abc.in和support.abc.in

我将需要单独的规则(http)来添加域名,我将在以后添加更多域名。

所以我需要一个针对这种情况推广的htaccess配置,以便我可以配置添加域以在将来需要时使用他们的ssl以及我将来添加的域添加规则。

我请求超级网站管理员和程序员根据我的情况为htaccess提供一些通用/自定义通用配置。

由于我是网页设计师,我对htacess重写并不了解,而且我对此很新。

任何理解这个问题的人,请提供您宝贵的意见。您的回复对我来说非常重要。谢谢。

请解释解决我的问题的代码,以便我可以在以后需要时自定义。

1 个答案:

答案 0 :(得分:0)

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(support\.)?abc\.com$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]