# mod_rewrite - Hin- und Herleitung?



## Caralynn (17. November 2007)

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:


```
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


----------



## TS-JC (17. November 2007)

RewriteRule  ^name1/(.*).php$      _modules/name1/$1.php

das sollte alle php dateien von name1 nach _modules/name1 weiterleiten


----------



## Caralynn (18. November 2007)

Huhu,

dankeschön! Werde es mal ausprobieren... 

VG,
Katharina


----------



## Gumbo (18. November 2007)

Du könntest es sogar noch allgemeiner halten:
	
	
	



```
RewriteCond %{REQUEST_URI} !^/_modules/
RewriteRule .* _modules/$0 [L]
```
Damit werden alle Anfragen, die nicht mit „/_modules/“ beginnen, dahin umgeschrieben.


----------



## Caralynn (7. Dezember 2007)

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 
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? 
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


----------



## Gumbo (7. Dezember 2007)

Caralynn hat gesagt.:


> 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.



Caralynn hat gesagt.:


> […] 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.


----------



## Caralynn (7. Dezember 2007)

Hi,

*grübel*


```
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!" 
Oder stimmt die Syntax nicht?

Edit am Morgen: Habe gestern abend XAMPP nochmal neu installiert, da scheinbar keiner das Problem hatte laut  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:

```
http://localhost/F:/xampp/htdocs/websites/<NameDerWebsite>/_modules/<NameDesModuls>/index.php
```

... was ja so nicht stimmt 
Die Angabe 
	
	
	



```
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


----------

