web-dev-qa-db-fra.com

htaccess multisite 301 redirections

J'ai une installation multisite avec 3 sites. 2 des sites utilisent la cartographie de domaine.

Le site principal (id = 1) nécessite plusieurs 301 anciennes pages d'une structure précédente, telles que:

Redirect 301 /about/careers/ /contact/careers/

L'un des autres sites (id = 3) a un contenu qui a été déplacé dans le site principal. Normalement, je redirigerais ceci dans le .htaccess de ce site:

Redirect 301 /news/events/ http://domain.com/news/events/

Le multisite n'a qu'un fichier .htaccess. Existe-t-il un moyen d’ajouter 301 redirections pour chaque site/domaine à partir du fichier principal .htaccess?

2
Mr Jonny Wood

D'accord,

RewriteEngine On
RewriteBase /

# Blog ID1 Rewrite Rules
RewriteCond %{HTTP_Host} ^(www\.)?primary-domain.co.uk [NC]
RewriteRule ^about/careers/$ contact/careers/ [R=301,NC,L]
RewriteRule ^glossary.html$ sitemap/ [R=301,NC,L]

# Blog ID3 Rewrite Rules
RewriteCond %{HTTP_Host} ^(www\.)?mapped-domain3.co.uk [NC]
RewriteRule ^about/$ http://primary-domain.co.uk/about/ [R=301,NC,L]
RewriteRule ^news/$ http://primary-domain.co.uk/news/ [R=301,NC,L]

Cela fonctionne, il y a 158 lignes de plus sur mon site, mais vous voyez l'idée. Je n'avais pas trouvé de solution claire à ce problème mais cet article m'a aidé massivement.

J'espère que cela aidera tous ceux qui recherchent la même solution;)

3
Mr Jonny Wood

J'ai utilisé les informations ci-dessus pour le comprendre également pour mon système. Mais dans la mise en œuvre, j'ai constaté que je devais le structurer comme tel.

RewriteEngine On
RewriteBase /

# Website site-1 Rewrite Rules
RewriteCond %{HTTP_Host} ^(www\.)?domain.com [NC]
RewriteRule ^that-one-page-old/$ that-one-page-new/ [R=301,L]
RewriteCond %{HTTP_Host} ^(www\.)?domain.com [NC]
RewriteRule ^that-other-page-old.php$ that-other-page-new/ [R=301,L]

Si je ne structurais pas de cette façon, this-one-old-page/fonctionnerait comme il se doit, mais les règles suivantes (that-other-page-old-vieux.php) s'appliqueraient à tous les domaines du système. Avec la liste ci-dessus, chaque règle s’applique uniquement au domaine prévu. J'espère que cela aidera tous ceux qui ont le même problème que moi.

2
Casper