Redirection PHP .htaccess

Redirection PHP .htaccess


Source : Les forums Webrankinfo

Bonjour a tous,

Voila j'ai regroupé plusieurs code de redirection .hatacces et je veux partager avec vous.

Rediriger un nom de domaine avec leur page vers un autre

Code:

RewriteEngine On
RewriteRule ^(.*)$ http://www.noveaunomdomaine.com/$1 [R=301,L]



Rediriger site sans www. vers site avec www : ( pour éviter le duplicate contenu )

Code:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\.nomdoamine\.com [NC] 
RewriteRule (.*) http://www.nomdoamine.com/$1 [QSA,R=301,L]

Rediriger index.html , index.php.... vers racine de site ( aussi pour éviter le duplicate contenu )

Code:

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(htm|html|php|asp|shtml)
RewriteRule ^(.*)index.(htm|html|php|asp|shtml)$ /$1 [R=301,L]

Rediriger un ancien page vers un nouvelle page ( pour éviter les erreurs 404 )

Code:

RewriteEngine On 
RewriteRule ancienpage.html http://www.nomdomaine.com/nouvellepage.html [R=301]

Rediriger un dossier et leur contenu vers un autre nouveau dossier ( pour éviter les erreurs 404 )

Code:

RewriteEngine On
RewriteRule ^ancien/(.*)$ http://www.nomdomaine.com/nouveaudossier/$1 [R=301,L]

/**************************** les pages format exemple.php?id=5 ----> exemple-5.html *************** /

Code:

RewriteEngine On 
RewriteRule ^(.*)-([a-z-]+)-([0-9]+)\.html$ exemple.php?id=$2 [L]


/**************************** les pages format exemple.php?id=5&cat=10 ----> exemple-5-10.html *************** /

Code:

RewriteEngine On 
RewriteRule ^(.*)-([a-z-]+)-([0-9]+)-([0-9]+)\.html$ exemple.php?id=$3&cat=$4 [L

/**************************** convertir l'extension de fichiers php en html *************** /

Code:

RewriteEngine On 
RewriteRule ^(.*)\.html $1\.php [L]

Le format des liens sera exemple.html alors que le nom de la page est exemple.php
Bien sur il y'a des autres code a vos de nos donné vos code et aussi vos remarque images.gif


**** des exemples : ( voila 5 exemples je trouve dans ce forum pour mieux comprend )

*********************************************************** exemple 1 **********************************

Si tu veut rediriger tous les page d'un dossier vers les page d'un nouveau dossier qui prend le même nom

Code:

RewriteEngine On
RewriteRule ^forum-dossier/(.*)$ http://www.le-saxophone.fr/dossiers/$1 [R=301,L]

Si tu veut rediriger tous les page d'un dossier vers le racine d'un autre dossier.

Code:

RewriteEngine On
RewriteRule ^forum-dossier/(.*)$ http://www.le-saxophone.fr/dossiers/ [R=301,L]


*********************************************************** exemple 2 ********************************

Code:

RewriteEngine On
RewriteRule ^\#/(.*)\.html $1\.php [L]


*************************************** exemple 3 ******************************************

caviar a dit:

je voudrai faire des règles simples

1 - si l'url après le ndd contient cat- alors je redirige vers page=accueil&idcat=$1
2 - si l'url après le ndd contient commentaires- alors je redirige vers page=addcomments&id=$1:

Code:

RewriteRule ^cat-(.*)$ index.php?page=accueil&idcat=$1 [L,NC]
RewriteRule ^commentaires-(.*)$ index.php?page=addcomments&id=$1 [L,NC]


*********************************** exemple 4 *******************************

monbototo a dit:

j'aimerai rediriger http://www.anciensite.com vers http://www.nouveausite.com de façon permanente, mais sauf le

dossier "wanewsletter" ainsi que tous les sous-dossiers et fichiers qu'il contient.


Réponse par @HawkEye

Code:

RewriteCond %{REQUEST_URI} !wanewsletter/(.*)$
RewriteRule (.*) http://www.nouveausite.com/$1 [QSA,R=301,L]


NB: La règle fait une redirection page-à-page. Si tu veux simplement tout rediriger vers la racine du nouveau site,

il faut que tu enlèves le "$1"

***************************** exemple 5 *******************************************************

allann a dit:

est il possible de passez des variables de bases de données mysql dans une url de rewrting
actuellement j'ai des pages comme par exemple
http://www.monsite.com/annonce.php?idannonce=x ou x corespond à l'id de l'annonce
puis dans la balise meta title acheter votre <? $marque $modele ?>
j'aimerai si possible ecrire une regle qui transforme la page annonce.php en annonce-marque-modele.hml

Code:

rewritengine on
Rewriterule ^([0-9]+)-(.*)-(.*)\.html$ /annonce.php?idannonce=$1 [L]

Greendog a dit:

Il m'est arrivé de faire diverses url-rewriting (une dizaine dans le fichier .htaccess) et lorsque je cliquais sur un lien A sur le site, j'arrivais sur la page B. En gros, l'url rewriting des diverses urls étaient mélangé, j'ai réglé ce soucis en changeant l'ordre des lignes dans le fichier. Mais y'a-t-il une règle exact pour éviter ce genre de problème ?

Voila un topic qui parle plus de ça https://www.webrankinfo.com/forum/t/ordre-des-regles-dans-fichier-htaccess.84664/


Je souhaiterais rediriger mon URL stream de radio de base http://xxx.xxx.com:0000 en http://xxxx.maradio.com

Après avoir crée un sous domaine interne , un ami avait place un fichier .htaccess avec deux lignes de codes dans ce dossier

La redirection marchait

Rediriger www.domaine.fr/dossier//page.html (ou bien www.domaine.fr//dossier/page.html et même www.domaine.fr//dossier//page.html)vers www.domaine.fr/dossier/page.html

Code:

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . http://www.domaine.fr%1/%2 [R=301,L]


J'essaye de modifier un URL du type -http://example.com/go.php?go=affiliate1 en URL du type : -http://example.com/go/affiliate1

Code:

   RewriteEngine On
    RewriteRule ^(.*)/(.*)/$ go.php?go=$2 [L]

Protégeons nos fichiers images

Code:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.votredomaine.net/.*$ [NC]
ReWriteRule .*\.(gif|png|jpe?g)$ - [F]


Je dois rediriger le trafic d'un site vers un autre (structure complétement différente)
Mais je voudrais rediriger des pages spécifiques.

Comment je peux ajouter des règles particulières avec ce code ?
RewriteEngine On
RewriteRule ^(.*)$ http://www.nouveaudomaine.fr/$1 [R=301,L]

Oui dois je indiquer toutes les pages

RewriteEngine On
RewriteRule index.html http://www.nomdomaine.com/index.php [R=301]
RewriteRule ancienpage2.html http://www.nomdomaine.com/nouvellepage.html [R=301]
RewriteRule /dossier/ancienpage3.html http://www.nomdomaine.com/nouvellepage3.html [R=301]

Tu doit crée deux fichier .htaccess :
µ
Pour ancien nom de domaine ajouter ce code

Code:

RewriteEngine On
RewriteRule ^(.*)$ http://www.nouveaudomaine.fr/$1 [R=301,L]


( toutes les pages seront redirigées vers les pages de nouveau nom de domaine ) et pour le nouveau nom de domaine ajouter un fichier .htaccess avec les nouveau règles :

Code:

RewriteEngine On
RewriteRule ancienpage.html http://www.nouveaudomaine.com/nouvellepage.html [R=301]


( les anciennes page de l'ancien nom de domaine sera rediriger vers les nouvelle page )


j'ai des problème dans la sécurité de mon petit espace hébergement, j'ai fait qu'il que recherche j'ai trouvé un bon code qui permet de protéger le serveur contre les hacker débutant :wink:

voila le code ( dans fichier .htacess )

Code:

RewriteEngine On 

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})