Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
mod-rewrite index.php umleiten [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
mod-rewrite index.php umleiten


 
h3llo
20-07-2010, 18:39 
 
Hallo

Auf meinem Webserver sind im Moment folgende Rewrite Regeln aktiv:

RewriteRule ^([^/.]+)/?$ index.php?contr=$1 [L]
RewriteRule ^([^/.]+)/([^/.]+)/?$ index.php?contr=$1&action=$2 [L]


Es funktioniert auch soweit alles, allerdings möchte ich den Aufruf der Seite www.example.com über www.example.com/index.php verhindern bzw. dies auf www.example.com umleiten.

Ich habe es so versucht:

RewriteCond %{IS_SUBREQ} false
RewriteRule ^index.php$ http://www.example.com/ [L]


Das funktioniert auch, der Aufruf mit index.php wird auf die reine Domain umgeleitet. Leider sehen die ursprünglichen URLS jetzt nicht mehr aus wie vorher: www.example.com/eintrag/neu/ sondern so: www.example.com?contr=eintrag&action=neu

Wie kann ich die Umleitung bei Aufruf der index.php ändern, damit die ursprünglichen URLS erhalten bleiben?

 
wahsaga
20-07-2010, 18:48 
 
Leider sehen die ursprünglichen URLS jetzt nicht mehr aus wie vorher: www.example.com/eintrag/neu/ sondern so: www.example.com?contr=eintrag&action=neu
Ich kann da gerade den Zusammenhang nicht erkennen ...

Die „ursprünglichen URLs“, die gibst du doch in deinem HTML-Code vor, die haben doch nichts damit zu tun, wie anschließend umgeschrieben wird?

 
h3llo
20-07-2010, 19:15 
 
Die Links sehen natürlich genauso aus wie vorher nach dem Schema: www.example.com/eintrag/neu/

Nur bleibt diese URL nach dem Aufruf nicht mehr in der Adresszeile des Browsers stehen, sondern es erscheint dort seit Einbau der index.php Umleitung http://www.example.com?contr=eintrag&action=neu

 
wahsaga
20-07-2010, 19:28 
 
Na dann hast du wohl einen Redirect eingebaut, der mehr macht, als du eigentlich willst ... (Obwohl ich nicht verstehe, wieso der Original-Querystring angehängt wird, wenn du das nicht explizit angegeben hast.)

Hast du überhaupt verifiziert, ob deine IS_SUBREQ-Abfrage das gewünschte macht?
Soweit ich weiß bezieht sich das nämlich nur auf Subrequests durch andere Apache-Module; ob man sich innerhalb des Rewriting-Prozesses befindet, kann man damit aber m.W. nicht feststellen.

 
h3llo
20-07-2010, 22:00 
 
Wenn ich die IS_SUBREQ-Abfrage rausnehme, wird im loop weitergeleitet, so gesehen scheint diese schon das gewünschte zu machen.

Ich suche also eine Möglichkeit, den direkten Zugriff auf die index.php abzufangen, ohne dass die Angaben in der Adresszeile dadurch geändert werden.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:46 Uhr.