Zur Boardunity Forenstartseite
  #1  
Alt 03.02.2004, 20:01
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22

mod_rewrite


Ich wollte mod_rewrite anwenden um die Seite "index.php?id=home" auch unter "home.html" erreichen zu können.

Also habe ich die Datei ".htaccess" erstellt und mit diesem Inhalt gefüllt:

"RewriteEngine on
RewriteRule ^home.html$ index.php?id=$home"

Aber es tut nicht. Ich kann nun keine Datei aus dem gesamten Ordner mehr anzeigen lassen (keine erforderlichen Rechte und bla bla) . Was mache ich falsch ?
  #2  
Alt 03.02.2004, 20:14
Mitglied
 
Registriert seit: 10.2003
Ort: Bottrop
Beiträge: 779
Mhh... ich kann`s nicht garantieren, aber bist du sicher, dass hinter dem id= ein $ stehen muss?

__________________
Patrick Gotthardt
Patrick Gotthardt on Software
  #3  
Alt 03.02.2004, 20:15
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
Hab ich so irgendwo gelesen. Ich habe es auch schon ohne $ probiert. Es klappt aber nicht

  #4  
Alt 03.02.2004, 20:16
Benutzerbild von Daniel Richter
TVBlogger
 
Registriert seit: 07.2003
Ort: Wilhelmshaven
Beiträge: 2.110
PHP-Code:
RewriteEngine On 
RewriteRule 
^(.*)\.htmindex.php?id=$
Müsste klappen.

__________________
Daniel Richter
Immer ein Besuch wert: TVBlogger.de - Aktuelle Nachrichten aus der Welt des Fernsehens
  #5  
Alt 03.02.2004, 20:17
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Der reguläre Ausdruck war auch ein bisschen fehlerhaft.
Wenn du nur "home.html" durch "index.php?id=home" ersetzen willst reicht es wenn du "RewriteRule ^home.html$ index.php?id=home" schreibst.
Wenn du allerdings alle *.html seiten nach index.php?id=xyz übersetzen willst sollte dir mit folgendem geholfen werden:

RewriteRule ^(.*?)\.html$ index.php?id=$1

Ich konnts nicht testen da die Rewrite Engine bei mir nicht zum Einsatz kommt aber das sollte so stimmen.

  #6  
Alt 03.02.2004, 20:23
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
Danke.
Jetzt bin ich etwas weiter, aber nun steht da folgendes, wenn ich versuche die home.html aufzurufen:

"Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log."

Dabei habe ich mich vorher extra beim Hoster informiert und der hat mir versichert, dass mod_rewrite unterstützt wird ....

Woran liegt das jetzt ?

  #7  
Alt 03.02.2004, 20:47
Benutzerbild von Daniel Richter
TVBlogger
 
Registriert seit: 07.2003
Ort: Wilhelmshaven
Beiträge: 2.110
Wenn du es mit meinem Code gemacht hast, dann musst du die Seite mit home.htm aufrufen.

__________________
Daniel Richter
Immer ein Besuch wert: TVBlogger.de - Aktuelle Nachrichten aus der Welt des Fernsehens
  #8  
Alt 03.02.2004, 21:14
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
schon klar, aber ich habe es mit dem von exe gemacht. deiner hat irgendwie auch nicht funktioniert

  #9  
Alt 03.02.2004, 21:16
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Hast du denn das "RewriteEngine On" in deiner .htaccess Datei gelassen? Ich habs zwar in meinem Beispiel ausgelassen, es gehört aber weiterhin in deine Datei.

  #10  
Alt 03.02.2004, 21:17
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
das habe ich immer noch drin

  #11  
Alt 03.02.2004, 22:03
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
wird auf dem server confixx benutzt?
also ich hab das selbe problem
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #12  
Alt 04.02.2004, 15:34
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
Ja, Confixx.

Aber ich weiss jetzt woran es bei mir liegt: Mein Hoster hat mir mitgeteilt, dass da wohl erst irgendeine Option von denen aus aktiviert werden müsse ... Nun ja, ich warte ...

Aber noch eine Frage: Wie mache ich das denn dann mit der Weitergabe von Variablen, die per GET wieder erkannt werden ? Die Links müssen dann ja weiter auf Seiten verlinken, wie index.php?id=bla&id2=blub , oder ? Aber dann folgen ja die Suchmaschinen - Bots nicht mehr weiter ... Wie kann ich das anders lösen ?

  #13  
Alt 04.02.2004, 15:51
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
könntest dich evtl auch erkundigen welche option das ist?
ich möchte gerne auch mod rewrite haben!!

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #14  
Alt 04.02.2004, 16:03
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
LordAvalon: die Links sollen selbstverständlich in dem neuen Format geschrieben werden. ModRewrite schreibt ja nicht die HTML Ausgaben um sondern Anfragen eines Browsers.
Wenn du also via ModRewrite index.php?id=1&blah=2 in /1/2/seite.html umwandelst musst du auch in deinen Templates bzw. HTML Ausgaben /1/2/seite.html schreiben.

  #15  
Alt 04.02.2004, 16:04
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
naja aber das mit der option da stimmt schon.. weil ich habe das selbe problem und habe mal bei einem anderen hoster meine komplette seite auf mod rewrite gehabt
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #16  
Alt 04.02.2004, 16:31
Benutzerbild von MrNase
Mitglied
 
Registriert seit: 06.2003
Ort: /
Beiträge: 2.639
Eine Frage die mich schon länger beschäftigt und ich denke der Themenstarter wird damit auch ein Problem haben.

Wenn ich jetzt index.php?seite=test in /seite/test umwandle dann kann ich ja $_GET['seite'] nicht mehr verwenden, weil er $seite nicht mehr mit test belegt. Dann müsste man ja vorher /seite/test wieder in index.php?seite=test umwandeln damit $seite auch wirklich 'test' enthält.

wie jetzt bitte, oder?!

  #17  
Alt 04.02.2004, 16:41
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
da kann ich dir gewisse abhilfe schaffen!

PHP-Code:
parse_str(array_pop(explode("?",GETENV("REQUEST_URI")))); 
ganz oben hin für get!
http://www.php-resource.de/forum/sho...threadid=12722 mehr zu dem thema

aber ich denk ich weis, woran es liegt

AllOverride = All oder so muss es in der httpd.conf lauten..
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #18  
Alt 04.02.2004, 17:48
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
speziell zum thema mod_rewrite und confixx habe ich folgendes gefunden:

http://www.confixx-forum.de/forum/sh...hlight=rewrite

mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #19  
Alt 04.02.2004, 21:44
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Zitat:
Zitat von LordAvalon
Aber ich weiss jetzt woran es bei mir liegt: Mein Hoster hat mir mitgeteilt, dass da wohl erst irgendeine Option von denen aus aktiviert werden müsse ... Nun ja, ich warte ...
Ich habe jetzt doch mal mod_rewrite bei mir aktiviert und getestet was ich da geschrieben habe. Offenbar unterstützen die regulären Ausdrücke bei mod_rewrite das ? nicht so wie das bei PHP/Perl der Fall ist. Jedenfalls hat der Ausdruck nach dem entfernen des Fragezeichens hervorrangend funktioniert:
Code:
RewriteEngine on
RewriteRule ^(.*)\.html$ index.php?id=$1
Zitat:
Zitat von MrNase
Wenn ich jetzt index.php?seite=test in /seite/test umwandle dann kann ich ja $_GET['seite'] nicht mehr verwenden, weil er $seite nicht mehr mit test belegt.
Nein, dem ist nicht so. mod_rewrite bedeutet 'rewrite on the fly', d.h. wenn /seite/test in index.php?seite=test umgewandelt wird arbeitet der Indianer nach dem rewrite mit der URL index.php?seite=test weiter. PHP stellt folglich die Variable $_GET['seite'] bzw. $seite bei aktiviertem 'Register globals' nach wie vor zur Verfügung, aus Sicht des Scripts ändert sich mit mod_rewrite also gar nichts.

  #20  
Alt 05.02.2004, 17:08
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
Haa,

ich liebe euch

Es geht !!! Und dafür habe ich so lange rumüberlegt und rumprobiert !

Danke, danke, danke.

  #21  
Alt 05.02.2004, 17:15
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
weist du welche einstellung es war, die dein hoster umgestellt hat?
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #22  
Alt 05.02.2004, 17:18
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
Nein.
Das ist die eMail:

"Sehr geehrter Herr ...,

Ihnen wurde soeben die Rechte gesetzt. Bitte testen Sie Ihr Script erneut.

Bitte beachten Sie auch für zukünftige Fragen unser Helpsystem, das Sie unter
http://faq.udmedia.de finden.

Freundliche Grüße sendet

Ihr UD Media Team
Thomas Borgans


Aber wenn du bei deinem Hoster nachfragst, wirst du es sicher erfahren



Jetzt hab ich aber noch eine Frage ...
Wie lautet denn die Anweisungen dafür, dass wenn die Datei index.php?id=bla&id2=blub lautet, dann die Datei blub/bla.html geladen wird ? Und falls keine id2 vorhanden ist, soll nur die Datei bla.html geladen werden.

id2 ist also praktisch der Ordner und id der name der Datei.

  #23  
Alt 05.02.2004, 18:13
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Wenn du eine Anfrage auf blub/blah.html in index.php?id=blah&id2=blub umwandeln willst geht das folgendermaßen:

Code:
RewriteRule ^(.*)/(.*)\.html$ index.php?id=$2&id2=$1
Wenn id2 nicht vorhanden ist stimmt ja wieder die ursprüngliche RewriteRule.

  #24  
Alt 08.02.2004, 15:29
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
Aber es soll irgendwie selbstständig erkannt werden, ob id2 vorhanden ist oder nicht.

Und wenn es vorhanden ist, soll die Seite id2/id.html geladen werden und sonst eben nur die Seite id.html .

  #25  
Alt 11.02.2004, 13:35
Mitglied
 
Registriert seit: 02.2004
Beiträge: 22
Andere Frage:

Ich habe in meiner Seite das Menü und den Inhaltsteil in meine Index - Seite includet. Wenn ich jetzt mit der Mod - Rewrite Methode einen Verweis von bla/blub.html setze und dieser geöffnet wird, steht ja in der Adresszeile .../bla/blub.html . Wenn ich aber jetzt einen der Links anklicke, der sich wieder auf den übergeordneten Ordner bezieht, wird das Verzeichnnis trotzdem nicht gewechselt und es wird nach /bla/home.html gesucht, obwohl sich die home.html in dem Ordner darüber befindet.

Wie kann ich das Problem im Menü beheben, ohne ein komplett anderes für jeden Orner machen zu müssen ? (wird ja immer nur das eine includet)

Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25