Skocz do zawartości
vjdj

Strona tylko po https

Polecane posty

Jak w temacie dostęp do domeny potrzebuję tylko po https.

Zazwyczaj robiłem to przy użyciu .htaccess w poniższy sposób.

#Przekierowanie na https
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://mojadomena.pl

Jednak to niezależnie wpisując http://mojadomena.pl lub http://www.mojadomena.pl przekierowuje na https://mojadomena.pl.

Pytanie jak przekierować,

http://mojadomena.pl ->https://mojadomena.pl
http://www.mojadomena.pl->https://mojadomena.pl
Jak przekierować to poprawnie w .htaccess?
Ewentualnie jak skonfigurować to w apache dla jednej domeny.
Zmieniłem w configu apacha dla mojadomena.pl listen na 443 ale to wtedy przerzucało mnie na główną strone vps'a którą podałem podczas instalacji.
Wyłączenie nasłuchiwania na porcie 80 dla całego serwera, skutkuje brakiem wyświetlania strony gdy się nie doda https.
Jak to zrobić z automatu dla jednej domeny, jak dla całego serwera, że jak wyłączę nasłuchiwanie na danej domenie/ serwerze to będzie wiedziało, że ma być https
I ostatnie pytanie jak w zasadzie powinno się robić, co jest bezpieczniejsze/wydajniejsze/inne ustawienie serwer apache czy .htaccess
Edytowano przez vjdj (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Spróbuj

RewriteCond %{HTTP_HOST} ^mojadomena.pl [NC]
RewriteRule ^(.*)$ https://www.mojadomena.pl/$1 [R=301,L]
RewriteCond %{HTTP_REFERER} !mojadomena [NC]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A jakby ktoś szukał na nginxie to można jeszcze prościej.

if ($scheme = http) {
    return 301 https://$server_name$request_uri;
}

 

To popularny błąd. Poprawnie w nginksie się łapie innym server{}. Nie potrzeba ifów.

server {
    listen 80;
    server_name www.example.com example.com;
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;
    # [...]
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To nie błąd, to rozwiązanie jeśli nie chcesz tworzyć dwóch bloków server { }, co ma miejsce np. w panelu ISP kiedy chcesz dać użytkownikowi moc tworzenia nginxowych regułek, a przy tym dbasz o bezpieczeństwo serwera. I nie, nie jest to w żaden sposób gorsze ani wolniejsze niż zaproponowane rozwiązanie przez Ciebie.

 

Aczkolwiek w pełni się zgadzam, że dwa bloki serwer są bardziej eleganckie, choć ja najczęściej mam tam jeszcze kilka różnych regułek i chcę, żeby były aplikowane do obydwu bloków - np. rate limiting. W tym wypadku duplikacja kilkunastu czy nawet kilkudziesięciu linijek w dwóch miejscach mija się z celem, a wyżej stoi tylko blok http. Tak więc przyzwyczaiłem się już do tego prostego i krótkiego ifa, aniżeli duplikację configów w kilku miejscach.

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×