it-swarm.com.de

htaccess 301 Redirect funktioniert nicht bei Wordpress-Sites

Ich versuche, mit der .htaccess-Datei eine Anzahl von 301 Weiterleitungen einzurichten. Aus irgendeinem Grund funktioniert es bei mir nicht.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
# BEGIN 301 Redirects
Redirect 301 /about-us/ http://www.newsite.com/new-page/about-us/
# END 301 Redirects

Kann jemand Aufschluss darüber geben, warum dies auf meiner Wordpress-Site möglicherweise nicht funktioniert?

1
Beau Beau

Im Allgemeinen ist es viel besser, die Weiterleitung auf der Seite PHP zu handhaben. (vorausgesetzt, es wird von einem semi-kompetenten Entwickler implementiert) Es ist flexibler und verbraucht weniger Overhead.

Speziell für die Frage werden in den WordPress-Regeln all URLs behandelt. Daher ist Ihre Regel zu spät und Sie sollten sie verschieben, damit sie vor den WordPress-Regeln steht.

1
Mark Kaplun

Versuchen Sie folgenden Code zu verwenden:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^old-page-name(/.*)?$ https://www.myurl.com/new-page-name/ [L,R=301,NC]

RewriteRule ^another-old-page(/.*)?$ https://www.myurl.com/another-new-page/ [L,R=301,NC]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
0
Tejas

Für Weiterleitungen wie diese würde ich die Verwendung dieses Plugins empfehlen: https://wordpress.org/plugins/redirection/ Es ist einfach zu bedienen und unterstützt sogar erweiterte REGEX-Weiterleitungen.

Ich persönlich habe die .htaccess-Datei nur für fortgeschrittenere und domänenbezogene Weiterleitungen verwendet, d. H. Für die Kanonisierung von Domains.

Wenn Sie diese Umleitung jedoch wirklich in der .htaccess-Datei ausführen möchten, müssen Sie Folgendes tun:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# BEGIN 301 Redirects
Redirect 301 /about-us/ http://www.newsite.com/new-page/about-us/
# END 301 Redirects
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
0
gintsg