it-swarm.com.de

Hier erfahren Sie, wie Sie den Inhalt eines Verzeichnisses in ein Unterverzeichnis umleiten

Ich versuche, den Inhalt eines Verzeichnisses, das sich auf der obersten Ebene meiner Website befindet, in ein eine Ebene tieferes Unterverzeichnis umzuleiten. Ich muss auch zwei Dateien und einen Ordner ausschließen.
Nichts, was ich bisher ausprobiert habe, scheint für mich zu funktionieren. Das letzte ist:

RewriteEngine on

#RewriteCond %{REQUEST_URI} !^exludedfile\.html$ 
#RewriteCond %{REQUEST_URI} !^exludedfile\.html$ 
#RewriteCond %{REQUEST_URI} !^/folder/exludedsubfolder/.*$


RewriteRule ^/folder(.*)$ /folder/subfolder/$1 [R=301,NC,L]

Kannst du mir sagen, was ich dieses Mal falsch mache?

5
user70084
RewriteRule ^/folder(.*)$ /folder/subfolder/$1 [R=301,NC,L]

Wie soeben in dieser anderen Antwort erwähnt ... in verzeichnisbezogenen .htaccess-Dateien stimmt das Muster RewriteRule überein der URL-Pfad abzüglich des Verzeichnispräfixes, damit der URL-Pfad, der übereinstimmt, nicht mit einem Schrägstrich beginnt. Das Muster sollte also eher wie folgt aussehen: ^folder(.*)$

Sofern Sie nicht die Stammdatei .htaccess verwenden müssen, würde ich stattdessen eine Datei .htaccess in dem Verzeichnis erstellen, von dem Sie umleiten. Versuchen Sie also in der Datei /folder/.htaccess (nicht im Stammverzeichnis des Dokuments) Folgendes:

RewriteEngine On
RewriteBase /folder

RewriteCond %{REQUEST_URI} !^/folder/subfolder
RewriteCond %{REQUEST_URI} !^/folder/exclude-file1\.html$
RewriteCond %{REQUEST_URI} !^/folder/exclude-file2\.html$
RewriteCond %{REQUEST_URI} !^/folder/exclude-dir
RewriteRule (.*) subfolder/$1 [R=302,L]

Das Flag NC ist hier nicht erforderlich.

Die erste Anweisung RewriteCond soll eine Umleitungsschleife verhindern, da wir in einen Unterordner des Ordners umleiten, aus dem wir umleiten!

Ich habe auch eine 302 (temporäre) Weiterleitung verwendet. Wenn Sie sicher sind, dass es funktioniert, wechseln Sie zu 301 (permanent) - wenn dies beabsichtigt ist. 301s werden vom Browser zwischengespeichert, was das Testen problematisch machen kann.

3
MrWhite