# 404 bei mod_rewrite



## ShooterMS (21. Juni 2004)

Hab jetzt 1h das Netz durchsucht inklusive das Forum hier und bin keinen Schritt weiter gekommen. 
Ich habe lokal unter Windows Apache 2 laufen. In der httpd.conf habe ich mit LoadModule rewrite_module modules/mod_rewrite.so das ModRewrite geladen. 
In der PHP-Infodatei erscheint mod_rewrite unter apache2handler - Loaded modules.
Ich will eigentlich nur eine einfache Umleitung machen mittels der .htaccess

RewriteEngine On
Options +FollowSymlinks
AllowOverride All
#RewriteBase /
# Rule Fuer die Module
RewriteRule ^/hallo.htm$ /php.php

Aber egal was ich mache, immer kommt die Fehlermeldung 404. Datei nicht gefunden. Die Datei php.php ist aber definitiv da.

Bei  localhost/hallo.htm   sollte doch dann  localhost/php.php   kommen, oder?

Ich bin äußerst dankbar für jede Hilfe.


----------



## KristophS (21. Juni 2004)

Ich habe dem Autor des Tutorials hierzu acuh eine Frage gestelt:


> Ich fragte :
> 
> >    Hallo,ich habe ,dein Tutorial zum Thema mod_rewrite gelesen.
> >   Dieser mod war sogar bei meinem Apace eingebunden.
> ...



Ich weiss es hilft nicht ,aber man denkt danach immerhin nicht mehr das man zu 
Dumm ist so einen ,ansich einfachen, Code zum Laufen zu bringen.


----------



## ShooterMS (22. Juni 2004)

Aber das kann doch nicht sein, dass bei einer solch viel benutzten Software es mal auf dem einen System geht und auf dem nächsten wieder nicht. Irgendwo muss es doch einen Fehler geben? 
Kann ich denn irgendwie testen, ob die .htaccess überhaupt gelesen wird oder ob das rwrite-module wirklich geladen ist?


----------



## Sven Mintel (23. Juni 2004)

Die AllowOverride-Direktive gehört zu <directory>....was wiederum in.htaccess nix zu suchen hat.
Bei mir gibts da übrigens einen 500er-Error....wie immer bei Fehlern in .htaccess(damit kann man wunderbar seinen kompletten Webspace auf Eis legen)

Den Zweck sollte jenes erfüllen:

```
RewriteEngine On
RewriteRule ^hallo.htm$ /php.php
```

Warum dich der Tutorial-Autor nicht auf den Fehler aufmerksam gemacht hat, ist mir allerdings ein Rätsel....vielleicht hatte er einen Auto-Responder an :suspekt:


----------



## liquidbeats (14. Juli 2004)

Ich habe ebenso das selbe Problem 
Kann mir nicht erklären warum ich dies nicht zum laufen bekomme ... 

im netz finde ich auch recht wenig was mir weiterhelfen könnte


----------



## Sven Mintel (15. Juli 2004)

Wenn du das selbe Problem hast, sollte  die selbe Lösung das Problem klären, ansonsten müssstest du etwas konkreter mit der Problematik werden:


----------



## liquidbeats (15. Juli 2004)

Ich bin hier ja nicht wirklich draus schlau geworden
mod_rewrit wird mit gelade so wie ich es unter PHP infosehen konnte jedoch bekomme ich immer eine 404 Fehlerseite.
Die links werden zwar verfälscht jedoch kann ich diese nicht Folgen.

Wär Super wenn mir da jemand Helfen könnte.

Gruß andy


----------



## ShooterMS (15. Juli 2004)

ich habe auch noch immer dasselbe Problem. Die neue Seite kommt nur als 404 ...


----------



## liquidbeats (15. Juli 2004)

Dann ist das Schlussendlich nur Beschiss 

Spaß.


Dieses Forum hier arbeit mit dem mod_rewrite.
Ich möchte dies ebenso in ein VB der zweier Reihe einbauen, und da dies ja hier verwendung findet muss das also irgend wie gehen
Nur wie ?! .


----------



## Sven Mintel (15. Juli 2004)

Das mod_rewrite hat nix mit dem Forum zu tun.... das ist ein Apache-Modul, es kommt also auf den Server an, nicht auf die Skripte oder sonstwas.

Es reicht nicht aus, dass das rewrite-Modul läuft.
Wenn ihr per .htaccess "rewriten" wollt, muss dies in der httpd.conf erlaubt werden.

Sucht in der httpd.conf nach dem <directory>-Abschnitt für das Webverzeichnis(htdocs oder wie auch immer)

Dort sollte folgendes stehen:

```
AllowOverride FileInfo
```
oder

```
AllowOverride All
```

ist das nicht der Fall, müsst ihr das dahingehend ändern, ....damit wird der .htaccess gestattet, die entsprechenden Direktiven zu ändern.

Ist dies getan(und der Apache neu gestartet)...dann ist das rewriten möglich(bei ShooterMS scheints ja schon zu laufen).
Danach kommt es halt drauf an, wie ihr die Anfragen rewriten wollt.... logischerweise gibt es einen 404, wenn das Ergebnis des rewriten auf ein nicht vorhandene URL zeigt.

Das Beispiel von oben:

```
RewriteEngine On
RewriteRule ^hallo\.htm$ /php.php
```
macht nur eins.... es schreibt Anfragen an *hallo.htm* um auf */php.php*

Dies betrifft allerdings nur eine hallo.htm im Web-Stammverzeichnis, das nur die exakte Anfrage nach _hallo.htm_ betroffen ist.
*php.php* muss sich dabei ebenfalls im Web-Stammverzeichnis befinden...ist sie dort nicht vorhanden, gibts die 404.

Will man sämtliche Anfragen, also auch in Unterverzeichnissen auf eine *php.php* im Stammverzeichnis umschreiben, sähe dass so aus:


```
RewriteRule hallo\.htm$ /php.php
```


Soll die URL aber insofern umgeschrieben werden, dass sich die *php.php* im selben Verzeichnis befinden soll, wie die *hallo.htm*, dann geht das so:


```
RewriteRule ^(.*)hallo\.htm$ /$1php.php
```

BTW:im Apache-Manual gibt es einen URL-Rewriting-Guide, der einige hilfreiche Anwendungsbeispiele für mod_rewrite beinhaltet


----------



## liquidbeats (16. Juli 2004)

fatalus Danke dir erstmal dafür werde die gleich mal Testen gehen.


Ich sage ja nicht das dieses Forum dies ohne Nötige Einstellung etc. hinbekommt.

Ich habe ja alles die Nötige .htacces der mod ist geladen ebenso wurden links auch entsprechend verändert damit sie aus dem PHP salat html Salat machen usw.


Vielen Dank nochmal  ..  

 Gruß Andy


----------



## liquidbeats (16. Juli 2004)

SO ich habe das jetzt einfach mal gemacht
Da ja mehrere AllowOverride in der httpd.conf anzutreffen waren habe ich sie alle mal in

AllowOverride All

Geändert.

Funktionieren tut das jedenfals immernoch nicht.


----------



## Sven Mintel (17. Juli 2004)

Hast du danach den Apache neu gestartet?

Poste doch mal deine httpd.conf und die .htaccess(oder besser, hänge es ran)


----------



## liquidbeats (17. Juli 2004)

Ich habe apache neugestarten und ebenso den befehl gegeben  das apche mit gewallt die httpd.conf neu einliest

killall -HUP httpd


Schlussendlich habe ich wie ein beklopter rumprobiert und es doch noch zum laufen bekommen.

Danke erstmal für die tipps die mir ja doch  irgendwie geholfen haben
ich vermute  sehr stark das es 
Options -FollowSymlinks
war das  ich dann in
Options +FollowSymlinks
geändert habe.



Gruß andy


----------

