带有通配符 SSL 的 htaccess

带有通配符 SSL 的 htaccess

我们有一个通配符 SSL 证书,它可以在给定域的任何子域上使用。

因此在这个服务器中我们有这样的文件结构:

/主页/DOMAIN/public_html/subdomainx /主页/DOMAIN/public_html/subdomainy ETC...

现在,证书已安装,但是当您通过 https 访问任何子域(例如:hxxps://subdomainx.domain.com)时,它指向

/主页/域名/public_html/index.php

当您通过 https hxxps://subdomainx.domain.com 访问子域时,我们需要

它指向与 http 等效的同一目录:/主页/DOMAIN/public_html/subdomainx

我们的提供商告诉我们这是不可能的,当前的行为是正确的,并且要实现这一点,我们需要使用 htaccess 来实现。

我尝试了一些方法,包括这个解决方案,这似乎正是我需要的:https://stackoverflow.com/questions/5365612/advice-on-configuring-htaccess-file-to-redirect-http-subdomain-to-https-equival

但无法让它工作。

有什么建议吗?谢谢。

添加: 服务器是 Apache。

答案1

确保您已在 vhost 文件夹中正确配置 ssl.subdomain.domain.com.conf。

该文件看起来应该像这样:

<VirtualHost *:443>
ServerAlias www.subdomain.domain.com subdomain.domain.com
ServerAdmin [email protected]
DocumentRoot /home/domain/public_html/subdomain
BytesLog domlogs/domain-bytes_log
ServerName www.domain.com
CustomLog domlogs/domain.com-access_log combined
#ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/

User domain
Group domain

suPHP_ConfigPath /home/domain/etc/

SSLEnable
SSLCertificateFile /opt/apache/conf/ssl.crt/domain.com.crt
SSLCertificateKeyFile /opt/apache/conf/ssl.key/domain.com.key
SSLLogFile /var/log/ssl/domain.com_log
UserDir public_html
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown


. 
.
.

</VirtualHost>

答案2

我敢打赌你需要一个NameVirtualHost *:443(或者不管你的虚拟主机是如何定义的)。

另一个选择是定义一个VirtualDocumentRoot,如果您的 vhost 配置除了 docroot 之外都相同。

.htaccess文件绝对不需要任何事物您可以使用 Apache 来执行这些操作 - 除了“使用 htaccess 文件”之外。

相关内容