我们有一个客户端服务器,使用RHEL中的Apache2.2和Tomcat6托管我们的web应用程序。我已经为http到https重定向设置了apache重写规则,它工作得很好。我们有两个用于访问同一应用程序的DNS名称。Test1.com和Test2.com。我希望尝试访问http:// test1.com或https:// test1.com的所有用户都访问https:// test2.com。如前所述,http:// test1.com到https:// test2.com的重定向工作正常。我不能在https://test2.com上实现https://test1.com。
我尝试过虚拟主机、ServerAlias、NameVirtualHost,但都不起作用。如果我们可以通过重写来处理这个问题,任何建议都会有所帮助。任何其他可能导致解决此问题的建议都将不胜感激。
谢谢
发布于 2011-05-04 21:39:15
尝试以下操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} test1.com$
RewriteRule ^(.*)$ https://test2.com$1 [L,NC,R=301]
如果您同时拥有用于:80
和:443
的<VirualHost>
,则此重定向应该适用于这两种配置。
发布于 2016-10-21 02:05:57
我用重定向解决了这个问题,但我必须使用所有必要的ssl设置为https重定向设置虚拟主机。
<VirtualHost *:80>
ServerName test1.com
Redirect "/" "https://test2.com/"
</VirtualHost>
<VirtualHost *:443>
ServerName test1.com
Redirect "/" "https://test2.com/"
SSLEngine on
# SSLProxyEngine On
SSLCertificateFile /path/site.crt
SSLCertificateKeyFile /path/site.key
SSLCertificateChainFile /path/DigiCertCA.crt
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
</VirtualHost>
<VirtualHost *:443>
ServerName test2.com
...
SSLEngine on
# SSLProxyEngine On
SSLCertificateFile /path/site.crt
SSLCertificateKeyFile /path/site.key
SSLCertificateChainFile /path/DigiCertCA.crt
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
</VirtualHost>
发布于 2016-09-27 23:18:08
我有带https (证书)的site1和带http (没有证书)的site2,两者都在相同的IP (虚拟主机)上。然后我注意到Google使用site1的内容对site2进行了错误的索引。
而对于RewriteCond侦听
对于端口80的
但是,区别不再是端口,而是HTTP_HOST ( DNS名称)。
对我来说,site1 = shop.smartgart.com,site2 = one0.com。我把这个放到站点1的.htaccess中:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^shop.smartgart.com$
RewriteRule ^(.*)$ https://shop.smartgart.com/$1 [R=301,L]
也就是说:如果正在处理的HTTP_HOST不是site1,那么使用提供的后缀($1)重定向到site1。
对我很管用!
https://stackoverflow.com/questions/5883226
复制相似问题