2009-08-14 10 views
5

Chcę to zrobić: jeśli wykonają https://example.com, chcę je przekierować do https://www.example.com (dodaj www.). Próbowałem wielu rzeczy bezskutecznie.Przekierowanie ssl Apache'a za pomocą mod_rewrite

Redirect https://example.com/<anything> to https://www.example.com/<anything> 
RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteCond %{SERVER_PORT} =443 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

Ten kod znajduje się w pliku httpd.conf, ale został wypróbowany w plikach .htaccess i ssl.conf.

Czy ktoś może pomóc?

Odpowiedz

1

Czy włączyłeś Przepisywanie przez RewriteEngine On lub czy jest zainstalowany mod_rewrite? W przeciwnym razie Twój kod powinien zadziałać.

1

Funkcja Redirect directive działa tylko na ścieżce adresu URL. Ale jest to możliwe dzięki mod_rewrite. Zasada ta będzie działać w dowolnym pliku konfiguracyjnym:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteCond %{SERVER_PORT} =443 
RewriteRule^https://www.example.com%{REQUEST_URI} [L,R=301] 

I nie zapomnij obowiązkową RewriteEngine on podobnego (residuum już powiedziane) (1278432 # 1278432).

0

Użyj tego:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

Oczywiście, nie zapomnij, aby zastąpić "www.example.com" z własnej domeny.

+0

Jeśli przyjrzysz się dokładnie portowi OP 80, w ogóle go nie używasz. –