.htaccess RewriteRule Variablenübergabe |
bepo_mail
Pixelschubser Threadstarter
Beiträge: 5 |
Hi,
habe bereits folgende Zeilen:
--
RewriteEngine On
RewriteRule ^(.*)$ checkAccess.php
--
Alle anfragen der Dateien in dem betreffenden Ordner werden an die checkAccess.php weitergeileitet. Diese prüft, ob der Benutzer Zugriff erhält. Wenn JA, wird die angefragte Datei per PHP includiert. Nun möchte ich aber zusätzlich noch die Variablen übergeben, die beim Originalaufruf dabei sind ... also quasi irgendwi so:
Aufruf beispielsweise:
http://domain.de/folderWithHtaccess/index.php?UIN=1234
oder
http://domain.de/folderWithHtaccess/index.php?UIN=5678
und in der RewriteRule muss nun irgendwas dahint, wo ich nicht weiß, ob und wie das geht:
--
RewriteEngine On
RewriteRule ^(.*)$ checkAccess.php?UIN=$UIN
--
Weiß jemand eine Lösung?
Danke
Bepo
|
 Profil
Editieren
Zitieren
|
sDiver
Pixelschubser
Beiträge: 13 |
Hi Bepo,
einfach mal so probieren:
1:
2:
3:
4:
5:
6:
7: | // einzelne Parameter anzeigen
foreach ($HTTP_GET_VARS as $key => $val ) {
echo " $key = $val";
}
// Einfacher: den ganzen Query-String
echo " Query-String = " . getenv("REDIRECT_QUERY_STRING") . " "; |
sollte funktionieren
sDiver
Diese Nachricht wurde geändert von: sDiver |
 Profil
Editieren
Zitieren
|
bepo_mail
Pixelschubser Threadstarter
Beiträge: 5 |
hmm, ok. aber das müsste ich machen, wenn ich es im PHP-Skript ausgeben möchte, odeR? vielleciht habe ich mich auch blöd ausgedrückt ...
ich würde gerne in der -->.htaccess<-- die RewriteRule so ändern, dass dort die variablen des originalaufrufs an das Rewrite-Ziel (in meinem fall das PHP-Skript) weitergegeben werden.
|
 Profil
Editieren
Zitieren
|
sDiver
Pixelschubser
Beiträge: 13 |
Jo, mit der Rewrite-Rule lenkst Du ja alle anfragen an checkAccess.php
Da bekommst Du wie beschrieben die Variablen und Inhalte.
Dann Variablen für Include bereitstellen z.B. checkAccess.php?UIN=1234
1:
2:
3:
4:
5:
6:
7:
8:
9: | while ( list( $key, $val ) = each( $HTTP_GET_VARS ) ) {
$x = $key; //
$$x = $val; // setzt die Variable $UIN mit dem Wert 1234
}
if ( erlaubt ) {
include ("blabla.php");
// oder
include ( getenv("REDIRECT_URL") );
} |
evtl. noch ein global $UIN im includeten php, das sollte es eigentlich sein !
Diese Nachricht wurde geändert von: sDiver |
 Profil
Editieren
Zitieren
|
bepo_mail
Pixelschubser Threadstarter
Beiträge: 5 |
ah ok, jetzt hat´s bei mir klick gemacht! den query string muss ich gar nicht expilzit in der RewriteRule mit übergeben ... der ist in der checkAccess.php verfügbar. Dafür erstmal danke!
dann hab ich jetzt ein logisches Problem...
was ich eigentlich vorhabe:
ein user kann sich per sofwarelogin () einloggen und es wird eine UIN (Uinque Identifier Number) gerneriert. Alle geschützten Seiten haben ein require("loginScript"), wo anhand der UIN erkannt wird, ob der benutzer momentan einen gultigen login hat - wenn ja darf er einfach die seite sehen, wenn nein, muss er sich einloggen. soweit so gut.
nun wollte ich ein komplettes verzeichnis (woanders auf dem server) per .htaccess vor unerlaubten zugriffen schützen. allerdings, sollen user, die einen gültigen software-login haben auch zugriff auf das geschütze verzeichnis haben.
dazu habe ich die hier gepostete .htaccess entworfen, die jede anfrage in dem verzeichnis an die checkAccess.php weiterleitet.
die checkAcess.php benötigt nun die UIN. Anhand dieser kann checkAccess.php in der DB die gütlitgkeit des Logins überprüfen. Wenn nun eben ein gültiger software-Login vorliegt, wird die ürsprünglich angefragte datei von der checkAccess.php geöffnet, der entsprechende header() und der inhalt gesendet.
Und hier nun das konkrete Problem:
Nun wird die Seite auch tatsächlihc angezeigt! Wenn dort allerdings ein Link auf eine weitere Datei in dem geschützen Ordner ist, fehlt die UIN und die Seite wird nicht angezeigt (weil kein gültiger Login gefunden wurde).
Bevor ich euch jetzt noch mehr unnötig zumülle ... mache ich lieber schluss.
hat vielleicht jemand eine idee, wie man das hinbekommen könnte?
THX
|
 Profil
Editieren
Zitieren
|
bepo_mail
Pixelschubser Threadstarter
Beiträge: 5 |
das problem mit der fehlenden UIN besteht bereits wenn die erste html seite erfolgreich angezeigt wird: die seite wird noch angezeigt, aber jedes bild erzeugt ja einen neuen request und bei diesem fehlt dann die UIN auch schon
|
 Profil
Editieren
Zitieren
|
bepo_mail
Pixelschubser Threadstarter
Beiträge: 5 |
Session hat mir nun letztendlich geholfen, die UIN fuer jeden Request vorzuhalten und damit den gültigen Login zu überprüfen.
thx
|
 Profil
Editieren
Zitieren
|