2017-08-25 7 views
1

mon fichier htaccess est rempli de 301 réoriente comme tel:htaccess - Réorienter tout le trafic vers un autre domaine, sauf existant 301 de

Redirect 301 /old-page.html https://www.example.com/new-page

Il y a environ 100 de ces réoriente. Ce que je voudrais faire est de rediriger tout le trafic va à l'ancien site pour accéder au nouveau site à l'exclusion du 301 de

existante Donc, si quelqu'un va à old-site.com/old-page.html il leur faudra pour new-site.com/new-page et si quelqu'un va old-site.com/random-page.html il faudra eux à new-site.com - juste la page d'accueil.

Est-il possible de faire cela en utilisant mod_rewrite et mod_alias sans réécrire les 301 actuels?

Répondre

1

Vous pouvez garder tous vos 301 règles. Il suffit d'insérer cette règle 301 générique ci-dessous votre règle existante:

# all existing 301 rules go here 

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(?:www\.)?old-site\.com$ [NC] 
RewriteRule^http://new-site.com/? [L,R=301] 
+0

Merci pour cela, mais quand j'ajouter ceci, tout redirige vers la nouvelle page d'accueil du site et les 301 règles sont ignorés complètement. – Craig

+0

Il n'ignorera aucune règle 301 ** au-dessus de cette règle **. Assurez-vous de vider le cache de votre navigateur lorsque vous testez. – anubhava

1

Vous devez utiliser un RewriteCond devant toutes vos règles comme celle-ci:

RewriteCond %{HTTP_HOST} ^(?:www\.)domain\.com$ [NC] 

Si vous voulez que toutes les règles suivantes à traiter et NE PAS utiliser le L (dernier) drapeau dans le RewriteCond déclaration.

Source: Redirect all urls exactly, just change domain name