Autor Zpráva
Petr Volny
Profil *
Zdravím,
2 problémy.
1. Jak aktivovat https (certifikát mám) na předem defonovaných URL (tzv. pokud se bjevím na http://www.example.tld/login, aby me mod_rewrite presmeroval na https://www.example.tld/login)
2. Nyní mám mod_rewrite na udrčitý typ stránky nastavený takto:

RewriteRule ^produkt-(.*) /index.php?m=product&title=$1 [L,QSA]
www.example.tld/produkt-dvd-prehravc-dlr-400

ale nová adresa bude

RewriteRule ^produkt-(.*)/sony/id-(.*) /index.php?m=product&cat=$1&subpage=sony&id=$2 [L,QSA]
www.example.tld/produkt-dvd-prehravac/sony/id-1

Dá se efektivně nastavit přesměrování skrze mod_rewrite ze starého na nový typ URL?

Děkuji
Kajman
Profil
Pro přesměrování, dejte před ostatní pravidla
RewriteCond %{HTTPS} !on
RewriteRule ^login https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]


Dá se efektivně nastavit přesměrování skrze mod_rewrite ze starého na nový typ URL?
Ne, přesměrujte v případě potřeby v index.php na aktuálně používanou url. Ale osobně bych zachoval původní url - čím méně změn url tím lépe.
Petr Volny
Profil *
Díky za pravidlo.
Dá se jej ještě doplnit o to, aby na ostatních stránkách bylo https vypnuto?
Pokud je tedy návštěvník na /login tak https zapnuto, na ostatnich vypnuto.

Napadlo mě i toto řešit přes php, ale nevím jak detekovat https vs. http.

Díky
Kajman
Profil
RewriteCond %{HTTPS} on
RewriteRule !^login https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]

Ale pak to bude asi u obrázků, stylů a javascritpů použitých v loginu hlásit, že nejsou bezpečné, páč se stahují přes http.

řešit přes php, ale nevím jak detekovat https vs. http.
$_SERVER["HTTPS"]
Silver8000
Profil
Tady je prikladna detekce v php :

<?php
define('WebServerName',$_SERVER['SERVER_NAME']);
if (@$_SERVER['HTTPS']=='on'){
define('WebServerProtocol','https://');
//Uzivatel je na strankach s HTPPS a nepresmerovava se
$WebServerRedirect = 0;
}else{
//Detekce jestly server ma HTTPS zapnute
$WebServerCheckPort = @fsockopen(WebServerName, '443');
if (is_resource($WebServerCheckPort)){
define('WebServerProtocol','https://');
//Uzivatel neni na strankach s HTPPS a presmerovava se
$WebServerRedirect = 1;
fclose($WebServerCheckPort);
}else{
//Server ma vypnute HTTPS a Uzivatele nepresmerovava
define('WebServerProtocol','http://');
$WebServerRedirect = 0;
}
}
?>

No a zustatek si uz date do kupy , sam tohle pouzivam s tim ze cele webovky mam v HTPPS.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: