2017-04-20 3 views
0

Ich versuche 301 Weiterleitungen in der .htaccess-Datei einer Website, die ich in WordPress umgewandelt habe, einzurichten..htaccess 301 Umleitung von /? P = blahblahblah

Die alte Seite hatte URLs, die

http://www.example.com/?p=about 
http://www.example.com/?p=contact-us 

Die Rewrite-Regeln habe ich versucht, sind unten wie die folgenden gesucht, aber keine Arbeit.

Redirect 301 /?p=about /about/ 
Redirect 301 /?p=contact-us /contact-us/ 

Redirect 301 /?p=about http://www.example.com/about/ 
Redirect 301 /?p=contact-us http://www.example.com/contact-us/ 

Redirect 301 /\?p=about /about/ 
Redirect 301 /\?p=contact-us /contact-us/ 

Redirect 301 /\?p=about http://www.example.com/about/ 
Redirect 301 /\?p=contact-us http://www.example.com/contact-us/ 

Es scheint, als ob die Wordpress-Rewrite-Regeln sind in erster treten, auch wenn ich die 301 Redirect ist über die Wordpress haben Regeln umleiten. Die Seite, die angezeigt wird, ist die Blog-Roll-Seite, auf der "Nothing Found" angezeigt wird, da ich keine Posts habe.

Gibt es eine Möglichkeit, diese Weiterleitungen funktionieren zu lassen?

+0

Haben Sie versucht, einen privaten Tab in Ihrem Browser zu öffnen und zu sehen, wenn die Umleitungen funktionieren (oder versuchen Sie einen Browser, den Sie noch nie die Website besucht haben auf)? Eine 301-Weiterleitung ist permanent, was die meisten Browser speichern, bis sie explizit gelöscht werden. – jackmullen

+0

Ich habe es gerade versucht. Funktioniert immer noch nicht. – unu

Antwort

0

Sie haben recht: Die Redirect-Regeln werden nicht berücksichtigt, wenn sie nach WordPress-Regeln eingefügt werden. Diese Zeile:

RewriteRule . /index.php [L] 

wird alles umleiten, und le [L] am Ende bedeutet, dass dies die letzte Regel.

Hier würden Sie in Ihrer .htaccess Datei setzen sollte:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# old site redirections 
RewriteRule /?p=about /about/ [L,R=301] 
RewriteRule /?p=contact-us /contact-us/ [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress