2013-07-14 16 views
7

Z powodów zbyt długich i skomplikowanych, aby się do nich dostać (wiąże się to z kilkoma warstwami biurokracji, co powoduje, że ktoś inny nie kupuje żądany przeze mnie certyfikat SSL), muszę skonfigurować domenę, aby przekierowywała wszystkie żądania do https://www.xyz.com - bezpieczny protokół z subdomeną www.Przekierowanie wszystkich URL-ów innych niż www na stronie http i https do https://www.xyz.com za pośrednictwem htaccess

A więc: http://xyz.com, http://www.xyz.com, i https://xyz.com powinien WSZYSTKIE przekierować na numer https://www.xyz.com.

Mój .htaccess-fu jest w najlepszym razie słaby i nie mogę tego zmusić do działania. Uwaga: hosting jest w Media Temple, jeśli to robi różnicę.

tej pory mój plik .htaccess wygląda tak:

RewriteEngine On 
RewriteCond %{HTTPS} !^on$ 
RewriteRule (.*) https://www.xyz.com/$1 [R,L] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

Zarówno http://xyz.com i http://www.xyz.com przekierowanie do https://www.xyz.com, więc yay. Jednak https://xyz.com jest nie przekierowanie do https://www.xyz.com i tym samym jest rzucanie stronę ostrzeżenia bezpieczeństwa:

Prawdopodobnie nie jest to miejsce szukasz!
Podjęto próbę dotarcia do xyz.com, ale zamiast tego dotarłeś do serwera identyfikującego się jako www.xyz.com. Może to być spowodowane błędną konfiguracją na serwerze lub czymś poważniejszym. Osoba atakująca w Twojej sieci może próbować nakłonić Cię do odwiedzenia fałszywej (i potencjalnie szkodliwej) wersji xyz.com.
Nie należy kontynuować, szczególnie jeśli nigdy wcześniej nie widziano tego ostrzeżenia dla tej witryny.

Każda pomoc w pokonaniu tego ostatniego garbu byłaby bardzo cenna!

Odpowiedz

8

To jest bardzo możliwe. użyj następującego kodu. to działa dla mnie.

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}$1 
+0

To rozwiązało mój problem - dzięki @Junaid Atique – Andrew

+0

Nie zadziałało to dla mnie, ponieważ nie miałem włączonego mojego certyfikatu zarówno dla domeny www.moja_domena.com, jak i dla domeny mydomain.com za odpowiedź od Scottie. – alieninlondon

3

Mimo że ten problem jest bardzo stary.

Jeśli znalazłeś to googeling dokładnie ten sam problem. Po dostarczeniu tutaj Kodeksu nie pomogło. Próbowałem i próbowałem.

Ten pracował dla mnie:

 RewriteCond %{HTTPS} off 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule .* https://%1%{REQUEST_URI} [R=301,L] 
    RewriteCond %{HTTPS} off 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
    RewriteCond %{HTTPS} on 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule .* https://%1%{REQUEST_URI} [R=301,L] 

Naprawiono problem dla mnie bez pętli lub innych błędów. Może to pomoże komuś innemu.

+0

To rozwiązanie działa po około 20 minutach próbowania wielu pozycji, nie jest idealne, ale wszystko inne kieruje non-http do https://www.www.example.com, którego nie mogłem wymyślić! – Barry

Powiązane problemy