mod_rewrite - Hin- und Herleitung?

Caralynn

Mitglied
Huhu,

eines vorneweg: mod_rewrite ist nicht mein Spezialgebiet, aber für mein kleines Projekt wollte ich eben einen "einfachen" mod_rewrite mal ausprobieren, der aber wohl in meiner Weise nicht möglich ist...

Im Pfad/Ordner "_modules/name1/" liegen die notwendigen php-Dateien.
Auf der Seite wird "name1" als Pfad in Links angegeben.

Letztendlich möchte ich die Schreibweise in der Seite beibehalten, aber es soll auch so angezeigt werden in der Browserzeile... dachte mir, dass das ganz einfach geht:

PHP:
RewriteEngine on
RewriteRule  name1/index.php$ _modules/name1/index.php

Wo hakt's? Gibt es ein bestimmtes Verzeichnis, in dem die .htaccess liegen muss?
Ist es außerdem möglich, das ganze zu automatisieren, also, dass es für alle php-Dateien von name1 gilt?

Viele Grüße,
Katharina
 
RewriteRule ^name1/(.*).php$ _modules/name1/$1.php

das sollte alle php dateien von name1 nach _modules/name1 weiterleiten
 
Du könntest es sogar noch allgemeiner halten:
Code:
RewriteCond %{REQUEST_URI} !^/_modules/
RewriteRule .* _modules/$0 [L]
Damit werden alle Anfragen, die nicht mit „/_modules/“ beginnen, dahin umgeschrieben.
 
Huhu,

@Gumbo: Nach den allgemeineren Ansatz wollte ich noch fragen, dankeschön! - Aber: Kann man bestimmte Seiten auch aus dieser Bedingung herausnehmen? :-(
Vielleicht mit einer darauffolgenden Mod-Rewrite-Regel, quasi überschreiben? Oder geht's auch eleganter...
Habe den Aufbau meiner Seite noch nicht so gut durchdacht und es könnte sein, dass manche da rausfliegen *grübel*...

Aber im Moment gibt es eh ein anderes Problem, was ich mir nicht ganz erklären kann :confused:
Ich habe das gesamte Projekt vor zwei Tagen auf meinen neuen Rechner gezogen, XAMPP-Version ist identisch und ich habe auch das mod-rewrite-Modul wieder aktiviert. So weit, so gut... allerdings scheint die Umleitung nicht mehr zu funktionieren (Syntax von TS-JC), die auf dem alten Rechner definitiv funktioniert hat. 404, also Seite nicht gefunden, wird gemeldet, was ja insoweit auch stimmt... gibts ja nicht unter dem angezeigten/verlinkten Ordner...

Der große Unterschied der beiden Rechner: Der Neue läuft mit Vista. Könnte es daran liegen? Installationsverzeichnis dürfte ein anderes sein (Partition F statt C), installiert unter Admin, Nutzung unter normalen Account, aber im Grunde müsste das mod_rewrite doch nicht beeinflussen? :confused:
Sämtliche Hinweise sind willkommen, von Vista-Bashing bitte ich aber abzusehen, da das nicht hilfreich ist bei der Beseitigung meiner Entwicklungshürde *indenFingernjuckt* :)

Viele Grüße,
Katharina
 
Kann man bestimmte Seiten auch aus dieser Bedingung herausnehmen? :-(
Vielleicht mit einer darauffolgenden Mod-Rewrite-Regel, quasi überschreiben?
Die erste Regeln, dessen Muster passt, wird angewendet. Deshalb müssten die spezifischen Regeln vor den allgemeinen notiert werden, da sonst die allgemeinen zuerst angewendet würden.

[…] allerdings scheint die Umleitung nicht mehr zu funktionieren (Syntax von TS-JC), die auf dem alten Rechner definitiv funktioniert hat. 404, also Seite nicht gefunden, wird gemeldet […]
Setz mal zusätzlich das R-Flag, um die Anfragen extern weiterzuleiten. Dort sollte der Fehler dann offensichtlich sein.
 
Hi,

*grübel*

HTML:
RewriteEngine on
RewriteRule ^pm/(.*).php$ _modules/pm/$1.php [R=302]
RewriteRule ^me/(.*).php$ _modules/me/$1.php [R=302]
RewriteRule ^se/(.*).php$ _modules/se/$1.php [R=302]

Allerdings weiterhin "Objekt nicht gefunden!" :confused:
Oder stimmt die Syntax nicht?

Edit am Morgen: Habe gestern abend XAMPP nochmal neu installiert, da scheinbar keiner das Problem hatte laut :google: und siehe da... es tut sich was. Problem macht mir laut [R] nun aber der Pfad, wohl die RewriteBase.

In der Browserzeile steht nun, ohne Angabe einer RewriteBase, folgendes:
Code:
http://localhost/F:/xampp/htdocs/websites/<NameDerWebsite>/_modules/<NameDesModuls>/index.php

... was ja so nicht stimmt :(
Die Angabe
PHP:
RewriteBase /websites/<NameDerWebsite>/
behebt zumindest mit einem Modul das Problem, aber die bisherigen anderen beiden werden extrem langsam "geladen" und scheitern letztendlich an einem Timeout beim config-Datei lesen :suspekt: ... auch mal eruieren...


Verwirrte Grüße,
Katharina
 
Zuletzt bearbeitet:
Zurück