这里是我的情况:我有两个CNAME域( domain.one.com
和domain.two.com
)指向相同的IP /机器,我想redirect到另一个,如domain.one.com/anything
到domain.two.com/anything
。 domain.two.com
有一个有效的SSL证书。
我有以下设置:
在httpd.conf
:
RewriteCond %{HTTP_HOST} ^domain\.two\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/(.*) https://domain.two.com/$1 [L,R] NameVirtualHost *:80 NameVirtualHost domain.two.com:443 <VirtualHost *:80> ServerName domain.two.com DocumentRoot "/var/www/html/" ErrorLog logs/error_log CustomLog logs/access_log common RewriteEngine On RewriteOptions Inherit </VirtualHost>
在ssl.conf
:
<VirtualHost domain.two.com:443> DocumentRoot "/var/www/html" ServerName domain.two.com:443 </VirtualHost>
–
我到目前为止所尝试的:
添加到httpd.conf
中:
NameVirtualHost domain.one.com:443 <VirtualHost domain.one.com:80> ServerName domain.one.com RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.one.com$ RewriteRule (.*) http://domain.two.com/$1 [R=Permanent] </VirtualHost>
还要将以下内容添加到ssl.conf
:
<VirtualHost domain.one.com:443> ServerName domain.one.com RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.one.com$ RewriteRule (.*) http://domain.two.com/$1 [R=Permanent] </VirtualHost>
我知道我做错了什么,但我不知道是什么。 我怎样才能做这个工作?
(我应该提到,我是这些东西的小菜一碟。)
我build议你在DNS设置中使用CNAMElogging来简化程序。 请参阅A,CNAME,ALIAS和URLlogging之间的差异
以下vhostconfiguration将满足您的要求。
1) HTTP domain.one.com到HTTPS domain.two.com
NameVirtualHost *:80 NameVirtualHost *:443 <VirtualHost *:80> ServerName domain.one.com RewriteEngine On RewriteRule ^(.*)$ "https://domain.two.com$1" [R,L] ErrorLog logs/error_log CustomLog logs/access_log common DocumentRoot "/var/www/html/" <Directory "/var/www/html/"> Require all granted Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:443> ServerName domain.two.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/your.crt SSLCertificateKeyFile /etc/apache2/ssl/your.key SSLCertificateChainFile /etc/apache2/ssl/chain.crt ErrorLog logs/error_log CustomLog logs/access_log common DocumentRoot "/var/www/html/" <Directory "/var/www/html/"> Require all granted Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
2)对于HTTP和HTTPS domain.one.com到HTTPS domain.two.com
NameVirtualHost *:80 NameVirtualHost *:443 <VirtualHost *:80> ServerName domain.one.com RewriteEngine On RewriteRule ^(.*)$ "https://domain.two.com$1" [R,L] ErrorLog logs/error_log CustomLog logs/access_log common DocumentRoot "/var/www/html/" <Directory "/var/www/html/"> Require all granted Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:443> ServerName domain.one.com RewriteEngine On RewriteRule ^(.*)$ "https://domain.two.com$1" [R,L] SSLEngine On SSLCertificateFile /etc/apache2/ssl/your.crt SSLCertificateKeyFile /etc/apache2/ssl/your.key SSLCertificateChainFile /etc/apache2/ssl/chain.crt ErrorLog logs/error_log CustomLog logs/access_log common DocumentRoot "/var/www/html/" <Directory "/var/www/html/"> Require all granted Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:443> ServerName domain.two.com SSLEngine On SSLCertificateFile /etc/apache2/ssl/your.crt SSLCertificateKeyFile /etc/apache2/ssl/your.key SSLCertificateChainFile /etc/apache2/ssl/chain.crt ErrorLog logs/error_log CustomLog logs/access_log common DocumentRoot "/var/www/html/" <Directory "/var/www/html/"> Require all granted Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>