Zur Navigation

rewriterule in Unterverzeichnissen

1 Casimyr (Gast)

Guten Tag,

ich würde gerne rewriterules in Unterverzeichnissen einfügen. Mein Problem ist, dass das Unterverzeichnis gesperrt wird, sobald sich eine .htaccess darin befindet.

Forbidden

You don't have permission to access /rankpavillon on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Konkret sieht es so aus:

Ich habe eine Seite www.abc.de/seite.php und ein Verzeichniss www.abc.de/seite

Über eine rewriterule habe ich www.abc.de/seite.php in www.abc.de/seite umgewandelt.

Nun ist ist im Verzeichnis www.abc.de/seite noch eine weitere seite, sagen wir seite2.php

Also www.abc.de/seite/seite2.php

Diese möchte ich nun über www.abc.de/seite/seite2 aufrufen.

Ich denke, dass ich dazu eine .htaccess ins Verzeichnis www.abc.de/seite einfügen muss. Mit der .htacess im Hauptverzeichnis, also www.abc.de/.htaccess wird das nicht klappen?

Sobald ich aber eine www.abc.de/seite/.htaccess anlege kann ich nicht mehr auf www.abc.de/seite zugreifen.

Wie löse ich das Problem?

danke
Casimyr

14.05.2012 12:59

2 Jörg

Über eine rewriterule habe ich www.abc.de/seite.php in www.abc.de/seite umgewandelt.

Wie schaut diese RewriteRule denn aus?

Sobald ich aber eine www.abc.de/seite/.htaccess anlege kann ich nicht mehr auf www.abc.de/seite zugreifen.

Eine leere htaccess Datei?

Wenn in dem Verzeichnis keine Index-Datei enthalten ist und DirectoryIndex auf off gesetzt ist, gibt der Webserver bei Aufruf des Verzeichnisses ein 403 "Forbidden" zurück.

Kannst du denn auf die Unterseite /seite/seite2.php zugreifen?

14.05.2012 16:31 | geändert: 14.05.2012 16:32

3 Casimyr (Gast)

Die www.abc.de/.htaccess sieht so aus:

Options -multiviews
DirectorySlash Off

RewriteEngine on

RewriteCond %{THE_REQUEST} /seite\.php
RewriteRule ^seite\.php$ /seite [R=301,L]
RewriteRule ^seite$ /seite.php [L]

Sobald eine www.abc.de/seite/.htccess mit dem folgendem Inhalt eingefügt wird:

Options -multiviews
DirectorySlash Off

RewriteEngine on

RewriteCond %{THE_REQUEST} /seite2\.php
RewriteRule ^seite2\.php$ /seite2 [R=301,L]
RewriteRule ^seite2$ /seite2.php [L]

kann ich auf www.abc.de/seite/seite2.php zurgeifen, auf www.abc.de/seite nicht.

www.abc.de/seite/seite2 geht aber trotzdem nicht. die .htaccess im Unterverzeichnis bewirkt nichts, ausser, dass ich auf www.abc.de/seite nicht zugreifen kann.

Casimyr

14.05.2012 20:06

4 Jörg

Diese Rule solltest du in der .htaccess Datei des Hauptverzeichnisses unterbringen (und dabei den Zielpfad anpassen):

RewriteRule ^seite2$ /seite2.php [L]

Die .htaccess Datei in dem Unterverzeichnis /seite kümmert sich nur um URLs die das Verzeichnis "/seite" im Pfad haben (und nicht "/seite2")

kann ich auf www.abc.de/seite/seite2.php zurgeifen, auf www.abc.de/seite nicht.

Dadurch, dass du in der htaccess Datei von /seite mod_rewrite Regeln anwendest, hebst du die Rules aus darüber liegenden htaccess Dateien auf. Diese Rule kommt deswegen nicht mehr zum Zuge:

RewriteRule ^seite$ /seite.php [L]

Liegt eine Index-Datei (index.php) in "/seite"? wenn nicht, schlägt hier wohl eine DirectoryIndex Einstellung zu, die den Zugriff auf den Verzeichnis-Index von "/seite" unterbindet.

14.05.2012 23:03

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]