web-dev-qa-db-fra.com

htaccess 301 Redirect ne fonctionne pas pour le site Wordpress

J'essaie de configurer un certain nombre de redirections 301 à l'aide du fichier .htaccess. Pour une raison quelconque, cela ne fonctionne pas pour moi.

# 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

Quelqu'un peut-il expliquer pourquoi cela ne fonctionne peut-être pas pour mon site Wordpress?

1
Beau Beau

En général, il est préférable de gérer les redirections du côté PHP. (en supposant qu'il soit implémenté par un développeur semi-compétent) Il est plus flexible et utilise moins de frais généraux.

Spécifiquement à la question, l'ensemble de règles wordpress gérera tous URL, votre règle est donc trop tardive et vous devez la déplacer avant les règles wordpress.

1
Mark Kaplun

Essayez d'utiliser le code suivant:

# 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

Pour les redirections comme celles-ci, je vous recommande d'utiliser ce plugin: https://wordpress.org/plugins/redirection/ Il est facile à utiliser et à prendre en charge, même les redirections REGEX avancées.

J'ai personnellement utilisé le fichier .htaccess uniquement pour des redirections plus avancées et liées à un domaine, c'est-à-dire la canonisation de domaine.

Mais si vous voulez vraiment faire cette redirection dans un fichier .htaccess, voici comment procéder:

# 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