Zur Navigation

Redirect nur von einer ganz bestimmten URL

1 dlsn (Gast)

Hallo zusammen,

ich würde gerne in meiner .htaccess einen Redirect einrichten.

Von
https://www.domain.de/t/

Nach
https://www.domain.de/neuesVerzeichnis

Aber:
https://www.domain.de/t/unterverzeichnis
soll nicht umgeleitet werden und weiterhin nach /t/unterverzeichnis navigieren.

Wenn ich das folgende mache, werden aber auch alle Unterverzeichnisse umgeleitet:
Redirect 301 /t/ https://www.domain.de/neuesVerzeichnis

Wie kann ich das umsetzen, dass nur die eine URL
https://www.domain.de/t/

und nicht die anderen
https://www.domain.de/t/unterverzeichnis

umgeleitet werden?

Vielen Dank
Gruß Daniel

10.10.2021 17:58

2 Jörg

mit mod_rewrite:

RewriteEngine on
RewriteRule ^t/$ https://www.example.com/neuesVerzeichnis [L,R=301]

Die Delimiter ^ und $ begrenzen den URL-Pfad vorne und hinten.

10.10.2021 18:16

3 dlsn (Gast)

Hallo Jörg,

das hat bei mir irgendwie leider nicht funktioniert.

Ich habe nun aber tatsächlich doch noch eine Möglichkeit gefunden, das umzusetzen:

RewriteCond %{REQUEST_URI} ^/t/?$
RewriteRule (.*) /neuesVerzeichnis [R=301,L]

Vielen Dank für Deine Antwort!

10.10.2021 18:22

4 Jörg

das hat bei mir irgendwie leider nicht funktioniert.

Was heißt "irgendwie"? hast du versucht, https://www.example.com/t ohne Slash am Ende weiterzuleiten? der Code funktioniert nur mit https://www.example.com/t/ - d.h. mit Slash am Ende

Ich habe nun aber tatsächlich doch noch eine Möglichkeit gefunden, das umzusetzen:

RewriteCond %{REQUEST_URI} ^/t/?$
RewriteRule (.*) /neuesVerzeichnis [R=301,L]

Ja, der Regelsatz macht aber auch noch etwas anderes, als was du oben geschrieben hattest: er leitet auch https://www.example.com/t weiter, also ohne Slash am Ende. Das ? hinter dem Slash sorgt dafür, dass dieser optional ist. Eine solche Weiterleitung geht im übrigen auch kürzer als Einzeiler:

RewriteRule ^t/?$ /neuesVerzeichnis [R=301,L]

10.10.2021 18:47 | geändert: 10.10.2021 18:49

... 3 Monate später ...

5 tekshrek

Hallo ins Forum,

vielleicht passt mein Beitrag hier dazu, denn ich suche etwas ähnliches… und bitte um Hilfe.

Gewollt ist, dass ausschließlich die Hauptdomain umgeleitet wird: domain1.de zu domain2.de

Alles andere soll bei domain1.de bleiben - wie domain1/blog (im Unterverzeichnis /blog/ ist WordPress installiert)

Bisher habe ich das:

RewriteEngine On
RewriteCond %{HTTP_HOST} (www\.)?domain1.de
RewriteRule "^/?$" https://domain2.de [R=302,L]

Leider funktioniert das so mit dem WordPress-Blog nicht richtig.

domain1.de/blog wird (nicht gewünscht) weiter geleitet zu domain2.de

aber domain1.de/blog/impressum bleibt bei domain1.de/blog/impressum

Habt vielen Dank vorab für die Lösung.

25.01.2022 09:11

6 Jörg

In welcher .htaccess Datei steht dieser Code, in /.htaccess oder in /blog/.htaccess ? und findet sich in /blog/.htaccess eine RewriteBase Direktive? WordPress hat in /blog/.htaccess seinen eigenen Abschnitt, nehme ich an?

25.01.2022 10:55

7 tekshrek

Die .htaccess steht im Hauptverzeichnis und sonst steht da nichts.

Die .htaccess für WordPress steht unter /blog/ denn da ist auch die WP-Installation drin.

25.01.2022 12:44

8 Jörg

und ist dort eine RewriteBase Direktive enthalten?

RewriteBase /blog/

25.01.2022 12:59 | geändert: 25.01.2022 13:01

9 tekshrek

Das ist alles, was in der htaccess unter /blog/ steht…



# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

# END WordPress

25.01.2022 13:24

10 Jörg

Die Weiterleitungsregel wirkt sich anscheinend auch auf das Unterverzeichnis /blog aus. Dort bewirkt die RewriteBase Direktive, dass domain1.de/blog/ weitergeleitet wird.

Du kannst mit einer zusätzlichen Bedingung sicherstellen, dass der String /blog in der URL nicht enthalten sein darf:

RewriteCond %{THE_REQUEST} !/blog

25.01.2022 14:28 | geändert: 25.01.2022 14:29