我有一个Apache2configuration
<VirtualHost *:80> ServerName y.com </VirtualHost>
和子域
<VirtualHost *:443> ServerName xycom </VirtualHost>
目标是使https:// xycom只能通过SSL访问。 但是,当我input任何其他子域名,例如https://any.y.com我看到相同的页面为https:// xycom
如何禁用像https://any.y.com这样的任何url,以https:// xycom显示相同的网页。 我希望这样的网站根本不应该被访问。
您必须在端口443上为xycom设置一个虚拟主机,而在端口80上只设置y.com。
Namevirtualhost *:80 Namevirtualhost *443 <VirtualHost *:443> SSLEngine on SSLCertificateFile "conf/ssl.crt/certificate.crt" SSLCertificateKeyFile "conf/ssl.key/certificate.key" SSLCertificateChainFile "conf/ssl.crt/chain-file.ca-bundle" ServerAdmin [email protected] DocumentRoot "C:/apache/htsecure/" ServerName secure.u4ik.us ServerAlias secure.u4ik.us </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "C:/apache/htdocs/" ServerName u4ik.us ServerAlias www.u4ik.us </VirtualHost>
注意两个不同的文档根。 另外请注意,他们听一个特定的域名。 对于使所有子域转到xycom的其他部分,请使用mod_rewrite:
在.htaccess文件中popup:
<IfModule mod_rewrite.c> Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !www.domain.com$ [NC] RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC] RewriteRule (.*) %2/$1 [L] </IfModule>