В Apache 2.4.6 бих искал да пренасоча заявки от http://A.org/foo
и https://A.org/foo
към https://B.org/foo
.
Използвам следните директиви:
<VirtualHost 1.2.3.4:80>
ServerName B.org
ServerAlias A.org
RewriteEngine on
RewriteCond %{HTTP_HOST} !^B.org$
RewriteRule ^/(.*)$ https://B.org/$1 [R=permanent,L]
</VirtualHost>
<VirtualHost 1.2.3.4:443>
ServerName B.org
ServerAlias A.org
RewriteEngine on
RewriteCond %{SERVER_PORT} ^443(s)
RewriteCond %{HTTP_HOST} !^B.org$
RewriteRule ^/(.*)$ https://B.org/$1 [R=permanent,L]
</VirtualHost>
Когато посетя http://A.org/foo
, това пренасочва към https://B.org/foo
(правилно).
Когато посетя https://A.org/foo
, това зарежда https://B.org/foo
, но не пренаписва URL адреса. Така че получавам грешка за несъответствие на домейн на SSL сертификат от уеб браузъра.
Има ли нещо нередно с втората директива VirtualHost
, която би попречила на URL адреса да бъде пренаписан?
RewriteCond %{SERVER_PORT} ^443(s)
ред и тествайте отново, след като изчистите кеша на браузъра. - person anubhava   schedule 24.01.2017