Comment mettre en place une redirection vers 301 pages. Extension d'en-têtes HTTP pour Chrome. Communication entre le navigateur et le serveur Web

J'ai rassemblé toutes les manières possibles d'effectuer une redirection 310 en utilisant différentes façons. Vous pouvez choisir vous-même ce que votre cœur désire.

En fait, comprenons les options pour effectuer correctement une redirection (transfert).

Redirection 301 simple dans .htaccess

Si votre serveur (ou hébergement) utilise Apache, la redirection peut se faire via un fichier. htaccess. Cette méthode, à mon avis, est la plus simple et la plus pratique de toutes que j'ai vue. Important! N'oubliez pas d'activer les modules mod_alias (pour prendre en charge les règles Redirect, RedirectPermanent et RedirectMatch) et mod_rewrite dans php.ini.

1. Transfert simple des anciennes pages vers les nouvelles : Redirection 301 /old/ http:// domain.com/new/ ou Redirect permanente /old/ http:// domain.com/new/

Le seul inconvénient est la nécessité d'effectuer toutes les modifications manuellement, c'est-à-dire que chaque adresse est écrite directement par le programmeur.

2. Redirection 301 en .htaccess pour les liens en russe

La seule différence qui m'a pris beaucoup de temps était la nécessité de sauvegarder avec précision le document au format UFT-8 sans BOM, ce qui est très point important. Si vous enregistrez dans un format différent, votre redirection ne fonctionnera probablement pas.

Tout le reste est identique:

3. Redirection à l'aide de RedirectMatch

Une méthode de redirection similaire à celle décrite ci-dessus, sauf que dans ce cas vous pouvez spécifier une redirection si vous avez transféré le site d'un moteur php vers aspx.

RedirectMatch /(.*).php$ /$1.aspx

4. Redirection de domaine de www vers non-www
Options +FollowSymLinks RewriteEngine sur RewriteCond %(HTTP_HOST) ^www.(.*) RewriteRule ^(.*)$ http://%1/$1

Une autre option sous une forme plus simple :

Options + FollowSymLinks RewriteEngine sur RewriteCond %(HTTP_HOST) ^www.domain.com$ RewriteRule ^(.*)$ http://domain.com/$1

5. Rediriger les requêtes sans www vers c-www Options + FollowSymLinks RewriteEngine On RewriteCond %(HTTP_HOST) ^domain.com$ RewriteRule ^(.*)$ https://domain.com/$1

résout également un problème similaire :

RewriteEngine sur RewriteCond %(HTTP_HOST) !^www.(.*) RewriteRule ^(.*)$ https://%1/$1

6. Rediriger les liens avec une barre oblique vers sans pour l'ensemble du site RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) ![^\/]$ RewriteRule ^(.*)\/$ /$1 7. Redirection 301 comme au point 6, mais vice versa RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) !\/$ RewriteRule ^(.*[^\/])$ /$1/ 8. Supprimez la barre oblique à la fin du lien principal s'il est sans www RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) !\/$ RewriteCond %(HTTP_HOST) ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1/ RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) ![^\/]$ RewriteCond %(HTTP_HOST) ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) !\/$ RewriteCond %(HTTP_HOST) ^([^www].*)$ RewriteRule ^(.*)$ http://%1/$1/ 9. Supprimez la barre oblique à la fin du lien principal si elle est avec www RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) !\/$ RewriteCond %(HTTP_HOST) ^www\.(.*)$ RewriteRule ^(.*)$ http://www.%1/$1/ RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) !\/$ RewriteCond %(HTTP_HOST) ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1/ RewriteCond %(REQUEST_URI) !\? RewriteCond %(REQUEST_URI) !\& RewriteCond %(REQUEST_URI) !\= RewriteCond %(REQUEST_URI) !\. RewriteCond %(REQUEST_URI) ![^\/]$ RewriteCond %(HTTP_HOST) ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 10. Supprimez en utilisant le bon redirige /index.php (sans GET) RewriteCond %(REQUEST_URI) /index.php RewriteCond %(QUERY_STRING) ^\z RewriteRule ^(.*)$ http://site.ru/? 11. Redirection 301 pour toutes les adresses où il y a index.php RewriteCond %(REQUEST_URI) /index.php RewriteRule ^(.*)$ http://site.ru/ 12. Nous redirigeons d'une URL dynamique vers une URL statique

option avec GET

RewriteCond %(QUERY_STRING) ^id=229 RewriteRule ^.*$ /supermodel/?

option sans GET

RewriteCond %(REQUEST_URI) /test/ RewriteCond %(QUERY_STRING) ^id=229 RewriteRule ^.*$ /supermodel/?

13. Nous redirigeons toutes les pages d'un domaine vers une url d'un autre domaine RewriteCond %(REQUEST_URI) (.*) RewriteRule ^(.*)$ http://site.ru/ 14. Redirections pour SSL (redirection de http vers https et vice versa)

J'ai écrit davantage à ce sujet, que, à la lumière, je propose d'étudier.

RewriteEngine sur RewriteCond %(HTTPS) hors RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)

Redirection à l'aide de scripts

De nombreuses personnes effectuent des redirections à l'aide de scripts. Une petite sélection pour changer.

HTTP/1.1 301 déplacé définitivement Emplacement : https://new.com/new-k/new.htm Redirection PHP

15. Redirections ASP

17. Redirection ASP.NET
private void Page_Load (expéditeur d'objet, System.EventArgs e) ( Response.Status = "301 Moved Permanently"; Response.AddHeader ("Location", "https://new.com"); ) 18. Redirection ColdFusion
19. Redirection JSP (Java)
20. CGI PERL
$q = nouveau CGI ; print $q->redirect("https://new.com/"); Ruby on Rails def old_action headers["Status"] = "301 déplacé de façon permanente" redirect_to "https://new.com/"

Il existe également différentes recommandations de moteurs de recherche, pour implémenter les redirections 301. Je recommande d'utiliser Recommandations Google, qui fournissent des recommandations très détaillées sur la façon de configurer correctement une redirection 301.

Pour placer des redirections 301 sur les serveurs Apache, modifiez simplement le fichier .htaccess comme décrit ci-dessus. Si vous ne comprenez pas comment cela fonctionne et que les symboles malchanceux dans la description ci-dessus sont un grand mystère pour vous, contactez votre hébergeur ou écrivez une question dans les commentaires.

Comment faire une redirection 301 (redirection) dans WordPress à l'aide d'un plugin

Beaucoup de gens utilisent l'un des plus populaires CMS WordPress. Pour diverses raisons, nous pouvons être amenés à effectuer une redirection au sein du site. Par exemple, ce besoin s'est posé pour moi lors du déplacement d'un site Web vers un nouveau domaine.

Le plus solution optimale Il s’est avéré que c’était un plugin pour WordPress qui a résolu tous mes problèmes. L'inconvénient de ce plugin était uniquement la création manuelle d'une liste de liens de redirection.

Dans l’ensemble, le plugin pour WordPress me convient plutôt bien à ce jour.

Regardons quelques explications liées à la redirection 310

Une redirection 301, ou erreur de serveur 301, est une réponse spécifiée dans l'en-tête HTTP et indique que l'ancienne adresse a un nouveau chemin de manière permanente.

** L'erreur 303 indique un chemin de redirection temporaire.

Une redirection est la redirection automatique d’un visiteur d’un site vers un autre. Bref, l’utilisateur se retrouve sur une page complètement différente de celle dont il a tapé l’adresse dans la barre de recherche.

La redirection est effectuée à l'aide d'un script qui effectue la redirection. L'astuce réalisée est utile pour les propriétaires de sites qui souhaitent acheter un nom de domaine plus euphonique.

Par exemple, changer l’adresse d’une boutique en ligne entraîne de grosses pertes, car certains visiteurs seront perdus. Dans ce cas, le script résout ce problème : les utilisateurs composent également l'adresse précédente qui leur est familière, mais sont redirigés vers nouvelle page. Une redirection sera utile dans les cas où plusieurs noms de domaine sont croisés. L'adresse du site peut être saisie en précisant www ou simplement en tapant rapidement le nom principal, mais c'est à l'aide du script qu'ils se retrouvent sur la même page.

La fonction de redirection est utile non seulement pour maintenir un bon trafic vers les boutiques en ligne. La promotion du site a coûté beaucoup d'efforts aux propriétaires, il est donc logique qu'ils s'efforcent de maintenir leur position. Pour créer une entreprise plus prospère au sein d’une boutique en ligne, vous pouvez regrouper plusieurs sites. Une redirection est utilisée pour cela. Cette méthode de mise en œuvre de la fonction de redirection, d'une part, est très rapide et fiable, d'autre part, les moteurs de recherche se méfient des sites collés.

Pourquoi cela arrive-t-il?

Le fait est que les sites de recherche sont des machines qui doivent indexer clairement toutes les ressources. Les sites collés rendent l'efficacité difficile indexation rapide, ce qui, à son tour, réduit la fluidité de leur travail.

Les plus dangereux dans ce contexte sont les sites indexés par des robots, tout en dirigeant l'utilisateur vers la ressource à partir de laquelle s'effectue la redirection. Mais les moteurs de recherche ne perçoivent pas toujours négativement les sites liés. Nous parlons de la fonction de redirection 301.

La redirection 301 est un service au niveau du serveur. C'est une exception parmi d'autres fonctions similaires, puisque presque tous les moteurs de recherche la perçoivent comme conviviale. En particulier, le plus grand moteur de recherche Ressource Google, qui est le plus souvent utilisé, redirige favorablement avec un service de redirection 301 vers la page souhaitée.

La raison de l’interaction réussie d’une redirection 301 avec les ressources de recherche est qu’elle est fondamentalement différente des services d’optimisation similaires. Il est conçu de manière à fonctionner clairement pour un robot, qui est un moteur de recherche. Une redirection redirige vers l’URL de la page souhaitée une fois et définitivement.

L'impact de la redirection 301 sur la promotion SEO

1. Avec une redirection 301, les adresses sont fusionnées. Les robots des moteurs de recherche et les utilisateurs ouvrant le site dans un navigateur sont automatiquement redirigés vers une nouvelle page avec une nouvelle adresse.

2. Lors de la fusion d'adresses, la nouvelle URL reçoit tout le poids de la page, la masse des liens et des valeurs telles que TIC.
Une redirection similaire est meilleure solution lors du déplacement d'un site vers nouveau système gestion de contenu si vous ne voulez pas perdre votre position et le classement du site. Mon blog SEO utilise plusieurs types de redirections 301 pour la redirection.

C'est tout. J'espère que cet article vous a été utile. Si vous connaissez vos propres méthodes pour configurer une redirection, je serai ravi de les lire dans les commentaires.

Une erreur 301 (301 Permament Redirect) renvoyée lors de l'accès à une adresse de page spécifique signifie que le site a été définitivement déplacé vers nouvelle adresse, également spécifié dans l'en-tête HTTP. Les utilisateurs qui ont accédé via le navigateur et les robots de recherche seront redirigés vers la nouvelle adresse, tandis que pour les moteurs de recherche, toutes les propriétés de l'ancienne adresse (page) seront transférées vers la nouvelle URL. Avec une redirection 301, les anciennes et nouvelles adresses seront fusionnées : des paramètres comme PageRank et TCI, ainsi que le poids de la page et le poids du lien de l'ancienne adresse seront transférés vers la nouvelle URL.

Une redirection avec le numéro d'erreur 301 (déplacée de façon permanente) est meilleur moyen maintenir le classement du site dans les moteurs de recherche lors du déplacement vers un nouveau domaine ou lors du changement du système de gestion de contenu. La redirection peut se faire de plusieurs manières, selon le logiciel installé.

Redirection 301 en .htaccess

Lors de l'utilisation d'Apache sur le serveur, la redirection peut se faire simplement à l'aide du fichier .htaccess, cependant n'oubliez pas d'activer les modules mod_alias (pour supporter les directives Redirect, RedirectPermanent et RedirectMatch) et/ou mod_rewrite (pour utiliser la réécriture) en php .ini.

Redirection à l'aide de la directive Redirect ou RedirectPermanent du module mod_alias

Désavantage cette méthode est que toutes les adresses qui doivent être redirigées doivent être répertoriées une par une, chacune séparément. Vous pouvez également utiliser RedirectPermanent à des fins similaires.

Redirection à l'aide de la directive RedirectMatch

Cette redirection est similaire à la précédente, sauf que vous pouvez spécifier expression régulière pour les anciennes URL. Disons que lors du changement de moteur de PHP vers ASP, vous pouvez rediriger les anciennes adresses comme suit :

RedirectMatch /(.*).php$ /$1.aspx

Redirection à l'aide d'une directive Règle de réécriture du module mod_rewrite

Pour utiliser la directive RewriteRule, vous devez vous assurer que le module mod_rewrite est activé dans httpd.conf et que l'option FollowSymLinks est activée. L'utilisation du module de réécriture vous offre de nombreuses possibilités de rediriger les pages vers de nouvelles adresses.

Redirection d'un domaine de www vers non-www

Options + FollowSymLinks
Réécriture du moteur activé
RéécritureCond %(HTTP_HOST) ^www.(.*)
RéécrireRule ^(.*)$ http://%1/$1

ou une syntaxe alternative, plus compréhensible

Options + FollowSymLinks
Réécriture du moteur activé
RéécritureCond %(HTTP_HOST) ^www.domain.com$
RéécrireRule ^(.*)$ http://domain.com/$1

Rediriger les requêtes de non-www vers un domaine avec le préfixe www

Options + FollowSymLinks
Réécriture du moteur activé
RéécritureCond %(HTTP_HOST) ^domain.com$
RéécrireRule ^(.*)$ http://www.domain.com/$1

ou option alternative

Réécriture du moteur activé
RéécritureCond %(HTTP_HOST) !^www.(.*)
RéécrireRule ^(.*)$ http://www.%1/$1

Redirection à l'aide d'un script (envoi d'en-têtes)

Les requêtes de redirection peuvent également être effectuées à l'aide de scripts, en envoyant les en-têtes nécessaires au client.

Redirection PHP

Redirection ASP


Redirection ASP .NET


private void Page_Load (expéditeur de l'objet, System.EventArgs e)
{
Response.Status = « 301 déplacé de façon permanente » ;
Response.AddHeader("Emplacement", "http://www.new-url.com");
}

Redirection ColdFusion


Redirection JSP (Java)

Image de synthèse PERL

$q = nouveau CGI ;
print $q->redirect("http://www.new-url.com/");

Rubis sur Rails

def old_action
headers[« Statut »] = « 301 déplacé de façon permanente »
redirect_to « http://www.new-url.com/ »
fin

Les règles sont données pour le serveur Apache. Dans les règles : %(QUERY_STRING) - désigne le fragment de l'URL après le point d'interrogation (définissant les valeurs des paramètres CGI). Le déclenchement d'une règle de redirection particulière est déterminé par le fait que l'URL de la page relève ou non de cette règle. A propos de la signification de certaines désignations (^, $, NC, etc.).

Vous trouverez ci-dessous les règles les plus utilisées pour configurer le fichier .htaccess pour les redirections 301. Il est préférable de placer toutes les règles après deux lignes :

Options + FollowSymLinks RewriteEngine activé RewriteCond %(HTTP_HOST) ^site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1 RewriteCond %(HTTP_HOST) ^www.site\.ru$ RewriteRule ^(.*)$ http://site.ru/$1 Redirection 301 /was.php http://www.site.ru/new.php

Dans ce cas, la nouvelle adresse doit être précisée au complet avec http et le nom de domaine.

RewriteRule ^dir /dir-new/$1

Disons que l'adresse de la page ressemble à : http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=111 , alors pour mettre en place une redirection 301 vers une nouvelle adresse, vous devez utiliser la règle suivante :

RewriteCond %(QUERY_STRING) ^IBLOCK_ID=1&SECTION_ID=111$ RewriteRule ^dir/index\.php$ /new/sef/?

Si un (ou plusieurs) des paramètres GET n'est pas spécifié ou peut avoir une valeur arbitraire (dans notre exemple il s'agit de SECTION_ID), vous pouvez utiliser le code suivant :

RewriteCond %(QUERY_STRING) ^IBLOCK_ID=1&SECTION_ID=(.*)$ RewriteRule ^dir/index\.php$ /new/sef/?

Si vous souhaitez configurer la redirection uniquement pour l'adresse http://www.site.ru/dir/, mais en même temps pour que la page http://www.site.ru/dir/index.php?IBLOCK_ID =1 s'ouvre à l'ancienne adresse, vous devez utiliser le caractère spécial $ dans la règle.

RewriteRule ^dir/$ http://www.site.ru/new-dir/

Pour les domaines de la zone Fédération de Russie, les mêmes règles s'appliquent, mais tous les caractères cyrilliques doivent être remplacés par un code alternatif (c'est en latin). En particulier, la zone .рф elle-même est convertie en .xn--p1ai.

RewriteCond %(HTTP_HOST) ^ancien-site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

Et pour un domaine dans la zone Fédération de Russie :

RewriteCond %(HTTP_HOST) ^xn-...\.xn--p1ai$ RewriteRule ^(.*)$ http://www.site.ru/$1 RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_URI) !\..(1,10)$ RewriteCond %(REQUEST_URI) !(.*)/$ RewriteRule ^(.*)$ http://www.site. ru/$1/ RewriteCond %(REQUEST_FILENAME) !-d RewriteCond %(REQUEST_URI) ^(.+)/$ RewriteRule ^(.+)/$ http://www.site.ru/$1 RewriteCond %(HTTP_HOST) ^si-te\.ru$ RewriteRule ^(.*)$ http://www.site.ru/si-te/ RewriteRule ^bitrix/ /bitrix/admin/ RewriteRule ^(.*)$ http://www.newsite.ru/new/ RewriteRule ^dir(.*)$ /nouveau-fichier.php RewriteRule ^dir/no-file.html /no-file-new.html RewriteRule ^dir(.*)$ /all.php RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

Spécifie l'ordre de chargement des types de fichiers d'index situés à la racine du répertoire.

AnnuaireIndex index.html index.php index.htm index.shtml RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.site.ru/ RewriteCond %(HTTP_HOST) ^test.site.ru$ RewriteRule ^(.*)$ http://site.ru%(REQUEST_URI) RewriteRule [^abc]/unique-file.html /unique-file.html

Le code vous permet de définir une redirection 301 de tous les dossiers comme http://site.ruuniqe-file.html vers un fichier à la racine /unique-file.html. Cela peut être utile lors de la refonte d’un site et de la modification des liens.

RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11

Le code permet de créer une copie de la page avec l'adresse relative /studio/news/detail.php?ID=230354&PAGEN_2=11 à /testovyi/test/

Attention, il est important que le code réponse du serveur pour une erreur 404 soit exactement 404. Le chemin d'accès au fichier est indiqué à l'aide de la ligne suivante :

Document d'erreur 404 /404-pour-moi.php RewriteCond %(HTTP_HOST) ^(+)\.site\.com$ RewriteRule ^(.*) http://site.com/$1 RewriteCond %(HTTP_HOST) ^(+)\.site\.com$ RewriteCond %(HTTP_HOST) !=one.site.com RewriteRule ^(.*) http://site.com/$1

Toutes les règles sont exécutées dans l'ordre direct dans lequel elles apparaissent dans le fichier .htaccess, et la règle écrite plus tard sera exécutée plus tard.

Pour les sites qui n'utilisent pas Serveur Apache, des redirections 301 similaires sont facilement configurées à l'aide de PHP :

Il est optimal de configurer toutes les redirections immédiatement vers la page finale (sans redirections intermédiaires, en une seule étape), cela améliore leur perception par les moteurs de recherche et les utilisateurs.

RewriteCond %(HTTP_USER_AGENT) (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada| Téléphone Windows)

RéécrireRule (.*) http://mobile.site.ru/

RéécritureCond %(HTTP_USER_AGENT) ! (accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator |jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer)

RewriteRule (.*) http://no-search.site.ru/

Redirection de www.site.ru/component/content/?view=featured vers www.site.ru/

RewriteCond %(QUERY_STRING) ^view=featured$ RewriteRule ^component/content/?$ /?

RewriteCond %(QUERY_STRING) ^idc=4&marea=6$ RewriteRule ^index\.php$ /? . - Un point remplace un caractère arbitraire. - désigne une liste de caractères correspondant aux lettres a, b ou c. [^abc] - une liste de caractères qui ne sont pas inclus dans la plage spécifiée. Correspond à n'importe quel caractère sauf a, b ou c. * - signifie que le caractère précédent peut être répété (0 fois ou plus). * - la commande trouvera les caractères consécutifs d'un ensemble donné. [^abc]* - exactement le contraire. .* - remplace absolument n'importe quel jeu de caractères. ".*" - trouvera toutes les sous-chaînes entre guillemets. ^ - le début de la ligne (s'il est utilisé au début de l'expression). $ - désigne la fin de la ligne. \w - lettre, chiffre ou trait de soulignement _. \d - remplace n'importe quel nombre. \D - remplace n'importe quel caractère, mais pas un nombre. - remplace n'importe quel numéro. - n'importe quelle lettre de a à z (l'ensemble du jeu de caractères latins) en minuscules. - n'importe quelle lettre de A à Z en MAJUSCULES. - n'importe quelle lettre de a à Z en tout cas. - le même. RéécrireRule(.*) $1 ?

Placer après : RewriteBase /

Rappel des symboles et notations utilisés La ligne RewriteCond est une condition d'exécution de la règle RewriteRule. Si la condition est remplie, alors la redirection est déclenchée. Les règles peuvent être spécifiées à l'aide d'expressions régulières.
Caractères spéciaux utilisés dans les règles et leurs significations.

^ - caractère spécial en début de ligne ;
$ - caractère spécial de fin de ligne ;
! - caractère de négation spécial ;
. - point, remplace n'importe quel caractère, mais un seul ;
() - regroupement ;
\ est une barre oblique « d'échappement » ; le caractère suivant est considéré comme un caractère normal et non comme un caractère spécial.

Les modificateurs sont utilisés après les caractères normaux et spéciaux ou leurs groupes et vous permettent d'étendre les capacités des modèles pour déclencher des règles.

Le symbole est répété 0 ou 1 fois.
+ - répété de 1 à 65536 fois.
* - répété de 0 à 65536 fois.

Indicateurs qui spécifient des options pour la règle à utiliser. Ils sont répertoriés entre crochets séparés par des virgules, par exemple ou .

NC - Indicateur NoCase, qui désactive la vérification de la casse des caractères lorsque la règle est déclenchée.
R - Indicateur de redirection, exécute le processus d'arrêt du changement d'URL et renvoie le résultat. La valeur la plus couramment utilisée est R=301, mais d'autres sont possibles pour les redirections temporaires (302, MOVED TEMPORARY).
L - Dernier drapeau, arrête la formation de l'URL et la ligne est considérée comme finale.

  • Redirect 301 – théorie et pratique de la redirection, configuration et règles d’utilisation

MISE À JOUR :

RewriteCond %(SERVER_PORT) !^443$ RewriteRule .* https://%(SERVER_NAME)%(REQUEST_URI)

RewriteCond %(SERVER_PORT) ^443$ RewriteCond %(HTTPS) =on RewriteRule ^(.*)$ http://votre_site.com/$1

Une redirection 301 est principalement utilisée lorsqu'une page ou un groupe de pages a changé d'adresse. Cela se produit dans les cas où la structure du site change, lorsque la page URL formative change, etc. De nombreux propriétaires de sites n'y pensent pas et des pages en double apparaissent donc, ce qui peut entraîner des pertes de positions ou des chevauchements.

De plus, la redirection 301 est utilisée pour fusionner des miroirs (par exemple, un domaine avec www et sans www). Cela peut aider à améliorer les paramètres TCI et PR, car pour les moteurs de recherche, l'adresse du site avec « www » et sans « www » sont des URL différentes. Si le propriétaire décide de changer l'adresse du projet en raison d'un changement dans les biens et services fournis précédemment, ou décide d'enregistrer un domaine plus court et plus beau, il est alors très important que lorsque les visiteurs accèdent à l'adresse de l'ancien domaine, ils se retrouver sur la même page qu'avant, mais uniquement celle déjà située sur le nouveau domaine.

Redirection 301 en .htaccess

La redirection 301 dans htaccess est le moyen le plus simple et le plus populaire d’installer des redirections. Un des avantages de cette méthode est le fait qu'elle se déclenche sur le serveur avant le lancement. divers scripts ressource et ne crée pas de charge supplémentaire. Voici quelques-uns des exemples les plus courants (remplacez « site » par l’adresse de votre site Web) :

Redirection 301 en .htaccess pour un domaine avec www. vers un domaine sans www.

Options + FollowSymLinks
Réécriture du moteur activé
RewriteCond %(HTTP_HOST) ^www\.raskruty\.ru$
RéécrireRule ^(.*)$ http://site/$1

Redirection inverse depuis un domaine sans www. vers un domaine de www.

Options + FollowSymLinks
Réécriture du moteur activé
RéécritureCond %(HTTP_HOST) ^raskruty\.ru$
RéécrireRule ^(.*)$ http://www.site/$1

Rediriger l'adresse 301 de /index.php vers la racine du site /

RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site/

Encore un exemple :

RewriteCond %(THE_REQUEST) ^(GET|HEAD)\ /index\.php
RéécrireRule.*/

La même chose peut être faite pour /index.html, il suffit de le remplacer exemple php en HTML.

Redirection vers nginx :

Redirection 301 dans nginx pour un domaine avec www. vers un domaine sans www.

Serveur (
nom_serveur www.site ;
réécrire ^ http://site$request_uri? permanent;
}
serveur(
site nom_serveur ;
.... configuration principale....
}

Autre exemple (indésirable) :

Si ($host = "www.site") (
réécrire ^/(.*)$ http://site/$1 permanent ;
}

Redirection PHP :

Une redirection 301 est souvent utilisée comme réponse du serveur, remplaçant l'erreur 404 traditionnelle par cette action : Pas trouvé. Pour faire simple, lorsqu'un visiteur clique sur un lien incorrect, ou page supprimée, ne rencontrera pas de message du type : « Désolé, mais cette page a été supprimée », mais sera redirigé vers une autre page valide. Bien que ce point soit controversé parmi les experts, il existe donc plusieurs solutions possibles.

Premièrement, il existe deux catégories d'erreurs 404 : la première est traditionnelle (classique), lorsque la page manque vraiment, et la seconde est lorsqu'une telle erreur se produit en raison de « courbes ». Liens externes. Par conséquent, dans le premier cas, il vaut mieux tout laisser tel quel, c'est-à-dire « erreur 404 ». Mais dans le second cas, mieux vaut s'occuper de la redirection vers la bonne URL s'il est possible de la restaurer à partir d'un lien rompu ou de rediriger l'utilisateur vers la page principale.

Dans le cas où un grand projet ou une structure de site complexe doit être retravaillé, le propriétaire est souvent confronté à de multiples redirections ou à de longues chaînes. Cela signifie que la redirection n'est pas effectuée en une seule étape, mais en plusieurs - c'est une situation négative et doit être évitée. Si un robot de recherche suit un tel lien et reçoit plusieurs redirections d'affilée, il commencera à penser qu'il veut le tromper et arrêtera ses actions, et cessera généralement d'indexer ces liens.

Si possible, vous devez vous efforcer d’empêcher les redirections au sein de la ressource. Par exemple, si les liens menant d'autres ressources vers le site ne peuvent pas être corrigés et qu'une redirection est requise, alors les liens internes rompus doivent être corrigés. Bien que cela n’affecte pas les classements ou l’indexation, il est préférable d’être prudent et d’éviter de telles questions controversées.

Lors de la création de règles de redirection dans .htaccess, vous devez exclure les adresses réelles des fichiers et des répertoires sur le serveur et surveiller la sélection.

Avant de passer directement à la pratique, il faut dire qu’il existe deux types de redirection. Je pense que vous comprenez qu'il s'agit d'une redirection d'une adresse à une autre. Cela est nécessaire lorsque, lors d'un déménagement vers une adresse, vous devez envoyer une personne à un autre endroit.

La redirection peut être temporaire ou permanente. Permanent (301e) transfère le poids de référence, temporaire (302e) ne le fait pas. Aujourd'hui, nous parlerons spécifiquement d'une redirection permanente, puisque son utilisation est considérée comme optimale.

Mise en place de redirections 301 et cas pratiques

Habituellement, une redirection est écrite dans le fichier .htaccess, mais ce n'est pas la seule façon de la créer. Plus loin dans l'article, je montrerai également une option sur la façon d'effectuer une redirection avec en utilisant php.

Mais nous allons d’abord parler de la façon dont cela se fait via .htaccess. En général, en utilisant une redirection, vous pouvez vous débarrasser de nombreux problèmes. L'un d'eux est la possibilité de dupliquer les pages du site, puisqu'il est essentiellement disponible à deux adresses : www.site.ru, site.ru.

Et pour un moteur de recherche, ce sont des sites différents. Ainsi, chaque page de vos sites possède au moins 2 adresses où elle est accessible. C'est si vous avez supprimé d'autres prises. Pour éviter de telles choses, ils redirigent généralement de www vers l'option non-www, car elle est plus courte et plus optimale. Ainsi, un collage de domaines se produit. Le miroir principal sera site.ru. Si l'utilisateur tape lui-même www.site.ru, il sera automatiquement redirigé vers l'option sans www. Cela vous permettra d'éviter les doublons, puisque désormais moteur de recherche comprendra que les domaines sont liés. Et voici le code lui-même :

RewriteCond %(HTTP_HOST) ^www.site\.com$ RewriteRule ^(.*)$ http://site.com/$1

RéécritureCond %(HTTP_HOST)^www. site\. com$ [NC]

RéécrireRule ^(.*)$http://site.com/$1

Naturellement, vous devez ici remplacer l'adresse du site par la vôtre. Il convient de noter que ce n'est pas le seul moyen d'éviter les problèmes avec www. Une autre option consiste à spécifier la commande Host dans le fichier robots.txt : domaine sans www. Une autre façon consiste à configurer le miroir principal dans Yandex.Webmaster. C'est généralement l'option la plus simple pour Yandex.

Très bien, mais que se passe-t-il si vous devez rediriger d’un domaine à un autre ? Dans ce cas, utilisez ce code :

RewriteCond %(HTTP_HOST) !^www\.site\.com RewriteRule ^(.*)$ http://www.site.com/$1

RéécritureCond % (HTTP_HOST) ! ^www\. site\. com

RéécrireRule ^(.*)$http://www.site.com/$1

Où, dans la première ligne, vous devez saisir le nom du domaine à partir duquel la redirection doit avoir lieu, et dans la deuxième ligne, entrez l'adresse vers laquelle la redirection a réellement lieu.

En fait, pour rendre les choses aussi simples que possible, je peux vous recommander ce service - http://www.webconfs.com/htaccess-redirect-generator.php. C'est ce qu'on appelle le générateur de redirection.

Redirection avec php

Je veux aussi montrer comment faire cela en utilisant php.