Autor | Zpráva | ||
---|---|---|---|
Meldo Profil |
Zdravím,
rád by som vyriešil presmerovanie rôznych typov domény na jednu jedinú s použitím čo najmenšieho množstva presmerovaní. Exsitujú tieto možné prípady: http://domena.sk http://www.domena.sk http://domena.sk/index.php http://www.domena.sk/index.php a rád by som to presmeroval na https://www.domena.sk ideálne jedným jediným presmerovaním. Všimol som si, že mall.sk to má nejak vyriešené. Je tam proste len jeden redirect nech to zadám akokoľvek. (overiť redirecty sa da tu: tools.pingdom.com/fpt/#!/cvk2RV/mall.sk) Existuje nejaky redirect na to? Momentálne používam: RewriteCond %{HTTP:HTTPS} !1 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^domena.sk$ RewriteRule (.*) https://www.domena.sk/$1 [R=301,QSA,L] RewriteCond %{REQUEST_URI} ^/index.php$ [NC] RewriteRule ^(.*)$ https://www.domena.sk/ [R=301,NE,L] |
||
Kajman Profil |
#2 · Zasláno: 6. 1. 2016, 19:53:45
Stačí přehodit pořadí.
RewriteCond %{REQUEST_URI} ^/index.php$ [NC] RewriteRule ^(.*)$ https://www.domena.sk/ [R=301,NE,L] RewriteCond %{HTTP_HOST} ^domena.sk$ RewriteRule (.*) https://www.domena.sk/$1 [R=301,NE,L] RewriteCond %{HTTP:HTTPS} !1 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,NE,L] |
||
Meldo Profil |
#3 · Zasláno: 6. 1. 2016, 20:30:03
Nakoniec som to vyriešil takto. V poradí:
RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://www.domena.sk/$1 [R=301,L] RewriteCond %{REQUEST_URI} ^/index.php$ [NC] RewriteRule ^(.*)$ https://www.mojvibrator.sk/ [R=301,NE,L] Prvá podmienka rieši presmerovanie na www verziu a zároveň https. |
||
Kajman Profil |
#4 · Zasláno: 6. 1. 2016, 21:48:47
Ale při zadání htt>p://domena.sk/index.php se zase provedou dvě přesměrování a při zadání htt>ps://domena.sk/ se adresa neupraví.
|
||
Meldo Profil |
#5 · Zasláno: 7. 1. 2016, 14:38:15
Kajman: díky za pomoc. Máš pravdu, upravil som to ale ešte to stále nie je úplne ono.
Aktuálny kód: RewriteCond %{REQUEST_URI} ^/index.php$ [NC] RewriteRule ^(.*)$ https://www.domena.sk/ [R=301,NE,L] RewriteCond %{HTTP_HOST} ^domena.sk$ RewriteRule (.*) https://www.domena.sk/$1 [R=301,NE,L] RewriteCond %{HTTP:HTTPS} !1 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,NE,L] Problém je, že ak mám niečo za lomítkom, presmeruje to vždy na root domeny. Napr.: www.domena.sk/kontakt
domena.sk/kontakt vždy to ide na https://www.domena.sk/index.php a potom na https://www.domena.sk/
Možno by stálo za zmienku, že pred týmito presmerovaniami mám toto: RewriteRule !(\.(.+))$ index.php RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ Vieme prosím aj toto vyriešiť? |
||
Kajman Profil |
#6 · Zasláno: 7. 1. 2016, 14:55:01
Přesměrovací pravidla dejte před to přepisování a přidejte k tomu prvnímu přesměrování podmínku, že není již interně přepsáno.
RewriteCond %{ENV:REDIRECT_STATUS} ="" A RewriteCond patří k RewriteRule, které je nejlbíže pod ním, pozor na to. |
||
Meldo Profil |
#7 · Zasláno: 7. 1. 2016, 15:55:45
Kajman si génius :)
Tak len pre budúcnosť pre ostatných, kompletný funkčný kód: #================================================================================== #presmerovanie index.php na root / #================================================================================== RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteCond %{REQUEST_URI} ^/index.php$ [NC] RewriteRule ^(.*)$ https://www.domena.sk/ [R=301,NE,L] #================================================================================== #presmerovanie non-www na www adresu #================================================================================== RewriteCond %{HTTP_HOST} ^domena.sk$ RewriteRule (.*) https://www.domena.sk/$1 [R=301,NE,L] #================================================================================== #presmerovanie http na https #================================================================================== RewriteCond %{HTTP:HTTPS} !1 RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,NE,L] #================================================================================== #odstrani posledne lomitko na konci url adresy #================================================================================== RewriteRule ^(.+[^/])/$ /$1 [R=301] #================================================================================== #spracovanie url #================================================================================== RewriteRule !(\.(.+))$ index.php RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ |
||
Časová prodleva: 9 let
|
0