[Megoldva] Apache redirect http -> https

A problemam viszonylag egyszeru (legalabbis en azt hittem) egy http-n bejovo kerest szeretnek https-re atiranyitani mindezt apache (2.2) alatt, csakhogy...

Csinaltam mar ilyet Redirect-tel nem is tul bonyolult, de most egy php-s alkalmazassal szeretnem hasznalni. A gond az, hogy nem akarom az osszes kerest https-re iranyitani, csak azokat amelyek egy bizonyos oldalt kernek le... amik ennek a php-s alkalmazas szerencsetlensegere csak egy parameterben kuolnboznek... pl:
index.php?alma=barack
index.php?alma=alma
RedirectMatch-csel probalkoztam, eddig hiaba... nem birom megcsinalni, hogy az =alma atiranyitodjon, de az =barack ne.

Amugy mediawiki-rol van szo es azt szeretnem megoldani, hogy a login-hoz mindenkepenn https-t hasznaljanak a userek (vagyis amikor jelszot adnak at) de amugy ne legyen kotelezo.

Hozzászólások

Hi!

Most nem tudok utánanézni, de úgy rémlik, hogy a RewriteCond- dal el lehet kapni a paramétereket is valahogy így:

'RewriteCond %{QUERY_STRING} ddd=1' + 'RewriteRule Pattern Substitution [flags]'

Szóval szerintem errefele keresgélj.

Amúgy ha nem megy, egy csúnya workaround:


if ($_GET['alma'] == "barack")
{
 print "<scr ipt language=\"javascript\">
  locat ion.hr ef = \"https://oldal.hu/?alma=barack\";
 </scr ipt>\n";
}

Vegulis hasonloan php kodbol oldottam meg a dolgot:


if (getenv('HTTPS') != 'on') {
  /* Redirect http request to https */
  $HTTP_HOST=getenv('HTTP_HOST');
  $REQUEST_URI=getenv('REQUEST_URI');
  header("Location: https://$HTTP_HOST$REQUEST_URI");
}

(a valtozo ellenorzes nem kell, mert ez egy olyan agon van amire csak akkor fut, ha az a altozo jol van beallitva)

Aki esetleg ugyanezt szeretne mediawikivel (vagyis login csak https-en keresztul), az az includes/SpecialUserlogin.php elejere szurja be a fenti sorokat.