404 bei mod_rewrite

ShooterMS

Mitglied
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.
 
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.
> Nun ,probiert ich es in einer .htacces datei aus ,aber nichts geschah (dein
> code)
> Liegt es daran ,dass ich den Apace unter Windows laufen habe?

Er antwortet:
Das kann durchaus sein, da die Konfiguration dann immer ein wenig anders ist als bei meinem Hoster, bei dem mein Code problemlos läuft.

Genau der gleiche Code läuft bei mir lokal auf einem Linux Rechner auch nicht .. ich habe aber leider auch noch nicht rausgefunden, woran das liegt

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.
 
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?
 
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:
Code:
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:
 
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 :rolleyes:
 
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:
 
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
 
Dann ist das Schlussendlich nur Beschiss :p

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 ?! . :(
 
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:
Code:
AllowOverride FileInfo
oder
Code:
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:
Code:
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:

Code:
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:

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

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