Seite 1 von 1

/inc/test.php und /inc/test.html zu /test oder /test/

Verfasst: 01.05.2010 18:07
von TheModRewriter
Hallo.
Ich habe leider keine Ahnung von ModRewrite, brauche also Eure Hilfe :-)

Habe einen Include-Ordner "includes" dort liegen meine ganzen Files (html und php) drinne.
Ich will bei einem Aufruf von /test oder /test/ (mit / am Ende) im Browser mit mod rewrite, falls test.php oder test.html im Ordner "includes" existiert, die Datei (entweder .php oder .html) aus dem Ordner "includes" zurückgeliefert bekommen;
Ansonsten soll ein "301 Moved Permanently Header" auf /404 geschickt werden.

Ist dies möglich? Wenn ja, wie?


Vielen Dank und viele Grüße, Jonathan.

Verfasst: 02.05.2010 18:48
von Gumbo

Code: Alles auswählen

RewriteCond %{DOCUMENT_ROOT}/includes/$1.html .+
RewriteCond %0 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/includes/$1.php .+
RewriteCond %0 -f
RewriteRule ^([^/]+)/?$ %0 [L]

Verfasst: 02.05.2010 19:54
von TheModRewriter
Okay, vielen Dank :-)
Kannst Du mir vielleicht noch schnell einen 301 Moved Permanently Header einbauen, wenn die .php und die .html Datei in dem Verzeichnis nicht gefunden wurden?

EDIT:
Das "Script" funktioniert nicht. Habe in / die .htaccess hochgeladen, ein Verzeichnis includes erstellt und dort drinne test.html, dann /test im Browser aufgerufen, es wird aber ein 404 Error zurückgesendet.. :-(

Kannst Du nochmal kucken, ob alles richtig ist?
(Ich habe nur einen Webspace bei Strato, falls es daran liegt)

Verfasst: 03.05.2010 09:34
von Gumbo
Ich halte eine Weiterleitung im Fehlfall für die falsche Wahl. Schließlich wurde die Ressource nicht gefunden und ist nicht einfach nur unter einer neuen URL verfügbar.

Verfasst: 03.05.2010 15:37
von TheModRewriter
Hmm ok..

Kannst Du trotzdem noch einmal schauen, ob das Script von Dir korrekt ist, es funktioniert nämlich nicht.

Verfasst: 04.05.2010 11:08
von Gumbo
Ich sehe leider keinen Grund, wieso es nicht funktionieren sollte. Du verwendest diese Regel doch in der .htaccess-Datei im Wurzelverzeichnis des Webserver, oder?

Verfasst: 04.05.2010 14:00
von TheModRewriter
Kein Webserver, nen Webspace bei Strato. Die .htaccess befindet sich auf der höchsten Verzeichnisebene, auf die ich Zugriff habe.

Re: /inc/test.php und /inc/test.html zu /test oder /test/

Verfasst: 21.05.2010 22:15
von TheModRewriter
Hat sonst noch jemand 'ne Idee?