Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: htaccess każda subdomena na domenę
Forum PHP.pl > Forum > PHP
freewalker
Witam, mam problem z zastosowaniem reguł w htaccess przy występowaniu 3 domen, chcę uzyskać taki efekt, że jak użytkownik wpisze w adres:
http://mojadomena.pl
http://www.mojadomena.pl (lub z https)
http://dowolnasubdomena.mojadomena.pl (lub z https)
http://www.dowolnasubdomena.mojadomena.pl (lub z https)

to zostaje przekierowany na https://mojadomena.pl

jednak na serwerze mam 3 domeny - pl, de, co.uk i dla każdej powyższe reguły powinny być zastosowane (nie chcę kierować np. co.uk na pl tylko na https://mojadomena.co.uk)

Zapisz w moim htaccess jest następujący:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mojadomena.pl [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://mojadomena.pl/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^mojadomena.co.uk [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://mojadomena.co.uk/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^mojadomena.de [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://mojadomena.de/$1 [L,R=301]

i w ten sposób tylko część z moich założeń działa i nie bardzo wiem jak to ugryźć, bo albo wpadam w nieskończoną pętlę, albo działa mi tylko warunek dla jednej domeny :/

Czy ktoś zna może jakieś dobre rozwiązanie takiego przypadku?

Z góry dzięki!
trueblue
Kod
RewriteCond %{HTTP_HOST} ^mojadomena\.(pl|de|co\.uk) [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://mojadomena.%2/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^(.+).mojadomena\.(pl|de|co\.uk) [NC]
RewriteRule ^(.*)$ https://mojadomena.%2/$1 [L,R=301]
freewalker
dzięki, działa częściowo i jesteśmy coraz bliżej smile.gif Po drodze mała korekta - domena eu zamiast co.uk (machnąłem się bo inny serwis mam na co.uk) no i w dodatku domena de nie ma certyfikatu, więc muszę wykluczyć ją z tego warunku, zrobiłem więc tak, rozszerzając Twój przykład:

RewriteCond %{HTTP_HOST} ^mojadomena\.(pl|eu) [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://mojadomena.%2/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^(.+).mojadomena\.(pl|eu) [NC]
RewriteRule ^(.*)$ https://mojadomena.%2/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^mojadomena.de [NC]
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://mojadomena.de/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^(.+).mojadomena.de [NC]
RewriteRule ^(.*)$ http://mojadomena.de/$1 [L,R=301]

i problemy, jakie występują to:
- jak wpiszę w adres: mojadomena.pl lub http://mojadomena.pl, to ucina mi rozszerzenie domeny i w efekcie przechodzę na https://mojadomena. (to samo w przypadku eu, wymusza https, ok, ale nie bierze pod uwagę, że ktoś wpisze adres bez www i samo mojadomena.pl wklepie)
- na de póki co nie ma problemu, bo nie mam https, a na pl i eu jak wpiszę coś jako subdomenę to reguła świetnie się sprawdza, problemem jest więc już tylko ten wyjątek wpisywania z http:// lub bez żadnego protokołu dla domen pl i eu na https
trueblue
Kod
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^mojadomena\.(pl|de|co\.uk) [NC]
RewriteRule ^(.*)$ https://mojadomena.%1/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^(.+).mojadomena\.(pl|de|co\.uk) [NC]
RewriteRule ^(.*)$ https://mojadomena.%2/$1 [L,R=301]

Poprawka dotyczy pierwszego bloku. To powinno rozwiązać kwestię ucinania.

Natomiast co do .de, to nie rozumiem w czym właściwie jest problem.
freewalker
a i jeszcze tak informacyjnie, wyskakuje mi wtedy błąd
DNS_PROBE_FINISHED_NXDOMAIN
więc robiłem już flushdns i wszystkie te bajery, żeby oczyścić u siebie w kompie ale to niewiele daje, dziwne natomiast jest to, że pl i eu daje błąd na chrome, na firefox pl działa idealnie ale eu nie działa i zachowuje się tak samo jak na chrome.... dalej coś z moimi dnsami zapisanymi w kompie, czy regułom przydałaby się mała modyfikacja?

Żeby było śmieszniej smile.gif
- na drugim kompie na chrome i firefox jest tak samo źle, że nie działa pl i eu po wpisaniu mojadomena.pl / mojadomena.eu (komp na wifi z tego samego routera)
- na smartfonie z androidem pl działa perfekcyjnie, ale eu nie... (net niepowiązany z domowym, korzystam z LTE)

zgłupieć można...


szybko! dzięki już sprawdzam i zaraz dam znać

de działa dobrze, masz rację, zamieszałem się już z tym wszystkim bo reszta działa różnie:P

zaktualizowałem htaccess ale bez zmian, w ogóle albo mi się wydawało, albo htaccess nie zawsze odświeża się od razu? Czy czasem trzeba czekać parę minut zanim serwer odświeży konfigurację?

trueblue
Zdarza się, że czasem serwer cachuje reguły.
Ale przede wszystkim przeglądarka (zapamiętuje przekierowania) -> czyszczenie historii.
freewalker
Mówił Ci ktoś kiedyś, że jesteś GENIUSZEM? biggrin.gif

Działa, działa $^&%$aaaaa! biggrin.gif
Zrobiłem w cmd flushdns, renew, zresetowałem do defaults w chrome://flags i cała historię w firefox i wszystko jest jak powinno:) Czyli jednak w moim połączeniu diabły siedziały.

Dzięki mistrzu, da się tu skrzynkę browara postawić?wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.