Pratique de Htaccess : à lire avant de poser

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

mahdivitchee
WRInaute discret
WRInaute discret
 
Messages: 175
Enregistré le: 22 Mar 2010

Pratique de Htaccess : à lire avant de poser

Message le Mer Sep 01, 2010 14:25

Bonjour
j'ai regarder que la plupart des topic sont des question que en'a déjà réponde

pour cela j'ai lancer ce topic ( et j'excuse pour l'orthographe :mrgreen: )



Pratique de Htacess :

Bonjour

avant de poser une question merci de lire ce topic : ( redirection ancien page vers nouvelle page, redirection nom de domaine vers autre, site sans www. vers site avec www ..... )

http://forum.webrankinfo.com/des-codes-pour-redirection-htaccess-t110832.html



//// des explications :

\ Annule le meta-sens du meta-caractère qui suit
^ Reconnaît le debut de la ligne
. Reconnaît n'importe quel caractère (sauf le caractère nouvelle ligne)
$ Reconnaît la fin de la ligne (ou juste avant le caractère nouvelle ligne final)
| Alternative
() Groupement
[] Classe de caractères


* Reconnaît 0 fois ou plus
+ Reconnaît 1 fois ou plus
? Reconnaît 0 ou 1 fois
{n} Reconnaît n fois exactement
{n,} Reconnaît au moins n fois
{n,m} Reconnaît au moins n fois mais pas plus de m fois

( exemple : ([0-9]{1,2}) Autorise un ou deux chiffres
([0-9]*) Autorise tous les chiffres
(([a-z]|-)*) Autorise toutes les lettres et tirets
([A-Z]+) au moins une caractère Majuscule
(.*) toutes les chiffre et les caractères
([0-9]+)([a-z]) : au moins un chiffre après n caractère ( n de 0 à l'infini )

.......

)



*************************

pour nettoyer les url en php voila la fonction : ( remplacer é par e , espace par - ........)

Code: Tout sélectionner
function nettoyage($text)
{
   $separator = "-";
   $tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ"; // Lettre accentuées
   $replac = "aaaaaaooooooeeeeciiiiuuuuyn"; // Equivalent non accentué
   $text = strtr(strtolower($text),$tofind,$replac);
   $text = ereg_replace("[^a-z0-9.]", $separator, $text);
   while (strstr($text, $separator . $separator))
      $text = str_replace($separator . $separator, $separator, $text);
   if (substr($text, 0, 1) == $separator)
      $text = substr($text, 1);
   return(ereg_replace($separator . "$", "", $text));
}


*****************************


par ( polyptote ) ,
Bonjour,
J'ai besoin de rediriger d'anciennes URL, suite à un changement de forum.
Ce qui produisait des URL comme celles-ci :
-http://example.net/forum/sujet-777

Mes nouvelles URL sont formées ainsi :
-http://example.net/forum/topic777

>>> Solution :

Code: Tout sélectionner
RedirectMatch permanent /forum/sujet(.*) http://www.example.net/forum/topic$1




******************************

Par caviar :

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


>> solution :

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




*******************************

par monbototo
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.


>> solution :

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



***********************

par moi :

Toutes tes pages en ...index.php5?title=quelquechose seront redirigé en 301 (redirection permanente et définitive) vers les pages .../quelquechose.


>>solution :

Code: Tout sélectionner
 RewriteRule ^index.php5?title=([a-zA-Z0-9]+) /$1 [R=301]




**************************

par sebrem :

Est-il possible de modifier une url du type :
http://www.monsite.com/collection/fiche.php?millesime=2010&id=123
en :
http://www.monsite.com/collection-2010/fiche-123.html

>> solution ( à mettre dans le racine , par Rod la Kox )

Code: Tout sélectionner
RewriteRule ^collection-([0-9]+)/fiche-([0-9]+)\.html$ /collection/fiche.php?millesime=$1&id=$2


****************************

Par pointb :

Je souhaite rediriger l'url http://www.exemple.com/fr vers http://fr.exemple.com (et que ça soit visible dans la barre d'adresse) ainsi que tout ce que contient /fr

>> solution

Code: Tout sélectionner
Redirect permanent /fr http://fr.exemple.com



******************************************

Je voudrais via le htaccess réecrute
http://www.example.com/products.php?cat=10
vers
http://www.example.com/le-produit-numero-10.

>> solution

Code: Tout sélectionner
RewriteRule products.php?cat=([0-9]+) /produit-$1 [R=301]



***************************************


j'ajoute dans ce topic les problème qui sont résolu

Bonne journée
Modifié en dernier par mahdivitchee le Mer Sep 01, 2010 17:03, modifié 4 fois.

JanoLapin
WRInaute accro
WRInaute accro
 
Messages: 4815
Enregistré le: 21 Sep 2008

Re: Pratique de Htacess : à lire avant de poser

Message le Mer Sep 01, 2010 14:51

super, merci

+1 reco

XGilbert
WRInaute discret
WRInaute discret
 
Messages: 228
Enregistré le: 10 Avr 2007

Re: Pratique de Htacess : à lire avant de poser

Message le Mer Sep 01, 2010 15:01

merci +1 reco


Madrileño
Madrileño
Madrileño
 
Messages: 37580
Enregistré le: 7 Juil 2004

Re: Pratique de Htacess : à lire avant de poser

Message le Mer Sep 01, 2010 15:16

Merci Mahdivitcheev pour ce tutoriel concernant la pratique de l'Htaccess. :)

Par contre il faudrait corriger le titre du topic :
"Pratique de Htacess : à lire avant de poser"
au lieu de :
"Pratique de Htaccess : à lire avant de poser"
merci. :mrgreen:

idefix
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 319
Enregistré le: 17 Jan 2007

Re: Pratique de Htaccess : à lire avant de poser

Message le Mar Sep 07, 2010 10:04

Merci beaucoup je voulais me plonger la dedans depuis un moment. Les deux sujets sont vraiment très utiles.
Par contre serait-il possible d'y ajouter ce que signifie par exemple
Options +FollowSymlinks et surtout ce genre de choses : [R=301,NC,L] ?

mahdivitchee
WRInaute discret
WRInaute discret
 
Messages: 175
Enregistré le: 22 Mar 2010

Re: Pratique de Htaccess : à lire avant de poser

Message le Mar Sep 07, 2010 12:11

Bonjour Idefix

si pas facile de t'explique ça surtout avec mon français :mrgreen:
mais voila j'ai fait un petit recherche dans le net :wink:

Rewrite

( source : ****http://www.nospheratus.com/linux/apache/rewrite.php)
voila un petit résumé
-----------------------------------------------------------------

RewriteEngine :
Syntax: RewriteEngine on|off
Default: RewriteEngine off
La directive RewriteEngine active ou désactive le moteur de réécriture. Si elle est à OFF alors il n'y a pas de réécriture.


RewriteCond : (plus d'info dans le site dessus )
Syntax: RewriteCond Chainetesté Condition
Default: Aucun
La directive RewriteCond définit un condition dans une règle de réécriture.

* 'nocase|NC' (no case) - retire le case sensitive
* 'ornext|OR' (or next condition) - permet la combinaison de deux conditions avec un OR (ou) :

Exemple : >>> Pour afficher une page d'accueil en fonction du navigateur de l'internaute :
Code: Tout sélectionner
 RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /homepage.mozilla.html [L]
RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
RewriteRule ^/$ /homepage.text.html [L]
RewriteRule ^/$ /homepage.autres.html [L]



et le plus important :

RewriteRule :
Syntax: RewriteRule Pattern Substitution
Default: Aucun

La RewriteRule est une directive de réécriture assez brutale. Cette directive passe avant tout autre script. Chaques directive définit une seule règle de réécriture. L'ordre de définition de ces règles est important, car si la dernière est cachée par la première alors celle-ci ne s'appliquera pas.

>>> flags :

--- 'redirect|R [=code]' (force redirect) : pour forcer une redirection externe
--- 'last|L' (last rule) : Arrête le processus de réécriture.
--- 'nocase|NC' (no case) : Supprime le case-insensitive
les autres flags dans le site :wink:


qu'il que exemple dans le net :

voila qu'il code utile :

>> Code pour sécuriser un site contre les hacker
Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^(.*&)?error=http://
RewriteRule ^(.*/)?errors.php - [F,L]


>> Redirection en gardent l'url origine
Code: Tout sélectionner
RewriteEngine On
RewriteRule ^(.*)$ http://www.domaine2.com/$1 [P]

#virtual host
<VirtualHost ip:port>
ServerName domaine1.com
ProxyPass / http://www.domaine2.com/
</VirtualHost>


>> Redirige tout un répertoire vers sous domaine
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^forum/(.*)$ http://forum.example.com/$1 [QSA,R=301,L]


>> Faire une réécriture ou une redirection que si le fichier n'existe pas
Code: Tout sélectionner
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ...


Bonne journée


spout
WRInaute accro
WRInaute accro
 
Messages: 8337
Enregistré le: 14 Mai 2003

Re: Pratique de Htaccess : à lire avant de poser

Message le Mer Sep 08, 2010 18:09

Je me demande toujours pourquoi les gens s'attardent avec l'URL Rewriting alors qu'un simple explode() de $_SERVER['PATH_INFO'] ou d'un $_GET['url'] pourrait faire l'affaire.
(Pour un script tout fait, OK je comprend, mais pour du développement maison...)

PATH_INFO:
Code: Tout sélectionner
www.example.com/index.php/module/action/param1/param2

_GET:
Code: Tout sélectionner
www.example.com/index.php?url=/module/action/param1/param2


Il n'y a besoin que de quelques lignes simples de rewrite pour ces 2 solutions pour transformer en URLs user/seo friendly:
Ex avec PATH_INFO:
Code: Tout sélectionner
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php/$1 [L,QSA]

http://www.example.com/module/action/param1/param2

Et tous les traitements en PHP:
Code: Tout sélectionner
<?php
list(, $module, $action, $param1, $param2) = explode('/',$_SERVER['PATH_INFO']);//Ou $_GET['url']
?>


Si le rewrite était absent, ces 2 solutions en non rewritées ne posent pas de problème non plus.

vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1115
Enregistré le: 27 Nov 2005

Re: Pratique de Htaccess : à lire avant de poser

Message le Mer Sep 08, 2010 20:00

Un petite ligne sur le disallow serait interressante aussi :)


spout
WRInaute accro
WRInaute accro
 
Messages: 8337
Enregistré le: 14 Mai 2003

Re: Pratique de Htaccess : à lire avant de poser

Message le Sam Sep 11, 2010 13:17


mahdivitchee
WRInaute discret
WRInaute discret
 
Messages: 175
Enregistré le: 22 Mar 2010

Re: Pratique de Htaccess : à lire avant de poser

Message le Mer Sep 15, 2010 12:06

merci spout pour les codes et pour le lien :wink:


LuciferX
WRInaute discret
WRInaute discret
 
Messages: 65
Enregistré le: 29 Sep 2006

Re: Pratique de Htaccess : à lire avant de poser

Message le Mar Nov 09, 2010 19:19

Un autre bon lien à ajouter serait http://www.htaccesstools.com


spout
WRInaute accro
WRInaute accro
 
Messages: 8337
Enregistré le: 14 Mai 2003

Re: Pratique de Htaccess : à lire avant de poser

Message le Sam Fév 05, 2011 14:17



cedric_g
WRInaute accro
WRInaute accro
 
Messages: 3620
Enregistré le: 18 Jan 2006

Re: Pratique de Htaccess : à lire avant de poser

Message le Dim Fév 06, 2011 22:20

Super ce post, une reco :)


Blount
WRInaute impliqué
WRInaute impliqué
 
Messages: 727
Enregistré le: 18 Nov 2010

Re: Pratique de Htaccess : à lire avant de poser

Message le Lun Fév 07, 2011 9:13

Je trouve la fonction censée nettoyer le code, complètement inutile et mal conçu.
Rappel :
Code: Tout sélectionner
    function nettoyage($text)
    {
       $separator = "-";
       $tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ"; // Lettre accentuées
       $replac = "aaaaaaooooooeeeeciiiiuuuuyn"; // Equivalent non accentué
       $text = strtr(strtolower($text),$tofind,$replac);
       $text = ereg_replace("[^a-z0-9.]", $separator, $text);
       while (strstr($text, $separator . $separator))
          $text = str_replace($separator . $separator, $separator, $text);
       if (substr($text, 0, 1) == $separator)
          $text = substr($text, 1);
       return(ereg_replace($separator . "$", "", $text));
    }


* fonction non compatible avec UTF-8.
* je remplacerai la boucle "while" et la condition (if) suivante par un "preg_replace" et un "trim"
* le "ereg_replace" sera compris dans le "trim".

Bref. Pour supprimer les accents d'une chaîne de caractères, il est préférable d'utiliser la fonction "iconv". J'ai d'ailleurs écris un article au sujet de la suppression des accents avec iconv.


WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 22968
Enregistré le: 19 Avr 2002

Re: Pratique de Htaccess : à lire avant de poser

Message le Lun Fév 07, 2011 9:25

Merci, d'ailleurs je vais épingler cette discussion dans ce forum ;-)

elembius
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 433
Enregistré le: 9 Juin 2010

Re: Pratique de Htaccess : à lire avant de poser

Message le Mer Fév 09, 2011 9:49

coool merci pour le résumé
une ptite reco en prime pour le sujet intéressant.

ne t'en fait pas pour ton français il va très bien... surtout mieux que nous si on devait parler dans ta langue.
++elembius

herykid83
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Enregistré le: 20 Juil 2011

Re: Pratique de Htaccess : à lire avant de poser

Message le Mer Juil 20, 2011 7:56

SVP aidez moi
comment on fait du urlrewriting ??

je voudrai reecrire l'url www.monsite.com/presentation.php en www.monsite.com/prestation-de-service/presentation.php

Voici ce que j'ai fais dans mon htaccess ( la redirection marche, mais les images du site et le fichier css ne s'affichent plus ) :

# fichier .htaccess
Options FollowSymLinks
RewriteEngine on
RewriteRule ^prestation-de-service/css/all.css$ css/all.css [L]
RewriteRule ^/images/.*$ images/.* [L]
RewriteRule ^prestation-de-service/presentation.php$ presentation.php [L]

L'arborescence du site est comme suit :
presentation.php
-> css -> all.css
-> images -> tous les fichiers images

Merci d'avance

jst
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Enregistré le: 25 Nov 2011

Re: Pratique de Htaccess : à lire avant de poser

Message le Lun Avr 23, 2012 21:30

spout a écrit:http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/


Salut !

Je repars sur une réécriture via PATH_INFO qui me semble très cool, le pb est que je n'arrive pas à faire générer la variable par Apache (wampserver 2.2)... un coup de main serait le bien venu ..

Merci d'avance

Sébastien


spout
WRInaute accro
WRInaute accro
 
Messages: 8337
Enregistré le: 14 Mai 2003

Re: Pratique de Htaccess : à lire avant de poser

Message le Mar Avr 24, 2012 8:51

J'ai fais un tuto plus complet, il y a d'autres techniques si PATH_INFO fonctionne pas:
-http://goo.gl/Vnkh1

jst
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Enregistré le: 25 Nov 2011

Re: Pratique de Htaccess : à lire avant de poser

Message le Mar Avr 24, 2012 10:47

Cool !


Merci pour le lien

Sébastien


studio-creations
WRInaute discret
WRInaute discret
 
Messages: 167
Enregistré le: 25 Jan 2011

Re: Pratique de Htaccess : à lire avant de poser

Message le Dim Sep 23, 2012 22:18

Vraiment super ces petites astuces sur le .htaccess, en quelques minutes de lecture j'ai pu réaliser sans problème ce dont j'avais besoin :D

desabillemoi
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Enregistré le: 21 Juin 2010

Re: Pratique de Htaccess : à lire avant de poser

Message le Dim Nov 04, 2012 17:32

Bonjour,

Merci pour ces différentes pratiques, cependant je ne trouve pas ce que je recherche ! J'ai besoin de rediriger un trafic géolocalisé.

En gros j'ai des sites étrangers qui génèrent du trafic français et j'aimerai détecter le trafic fr puis le rediriger sur une url France (sous forme d'un fichier htaccess)

On m'a donné ca mais ca ne fonctionne pas...

RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^FR$
RewriteRule ^(.*)$ http://www.url.fr$1 [R,L]

Merci d'avance pour votre aide,
David

iLuc
WRInaute discret
WRInaute discret
 
Messages: 120
Enregistré le: 14 Avr 2009

Re: Pratique de Htaccess : à lire avant de poser

Message le Lun Déc 10, 2012 21:54

Bonsoir,
Une fonction très efficace pour le rewrite: 8)

Code: Tout sélectionner
function rewrite_url( $url, $type = '' ) {
   $url = preg_replace("`\[.*\]`U","",$url);
   $url = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$url);
   $url = htmlentities($url, ENT_NOQUOTES, 'utf-8');
   $url = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i","\\1", $url );
   $url = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $url);
   $url = ( $url == "" ) ? $type : strtolower(trim($url, '-'));
   $url = preg_replace('/---/U', '-', $url);
   $url = preg_replace('/--/U', '-', $url);
return $url;
}

Liste-riad
WRInaute discret
WRInaute discret
 
Messages: 68
Enregistré le: 17 Déc 2010

Re: Pratique de Htaccess : à lire avant de poser

Message le Mar Jan 15, 2013 13:05

Merci bq
iLuc

web83
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Enregistré le: 31 Jan 2013

Message le Ven Fév 01, 2013 0:02

Bonsoir,

Je viens de lire cette page qui m'a l'air bien pratique mais je ne sais pas si cela répond à mon problème alors je viens vers
vous pour trouver une solution.
J'ai créée un site avec Web Acappella et celui-ci est hébergé sur ovh. En haut dans ma barre d'adresse, ce trouve le nom de mon site sous cette forme http://leschantiersdelajeunessefrancaiseamcjf.com/index.html
Ma première question est où se trouve mon http:// alors que lorsque je fais un copier/coller il ressort.
Ma deuxième question est, comment faire pour supprimer sur mes pages /index.html. et ne laisser que .com.

Merci d'avance de me permettre d'y voir un peu plus claire.

Liste-riad
WRInaute discret
WRInaute discret
 
Messages: 68
Enregistré le: 17 Déc 2010

Re: Pratique de Htaccess : à lire avant de poser

Message le Sam Fév 16, 2013 13:49

Bonjour web83

Ma première question est où se trouve mon http:// alors que lorsque je fais un copier/coller il ressort.


C'est de navigateur :mrgreen:

Ma deuxième question est, comment faire pour supprimer sur mes pages /index.html. et ne laisser que .com.


C'est simple ajouter ce code dans ton fichier htaccess

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



Lire aussi ce topic : http://forum.webrankinfo.com/des-codes-pour-redirection-htaccess-t110832.html


@+

mtth
WRInaute discret
WRInaute discret
 
Messages: 63
Enregistré le: 22 Aoû 2014

Re: Pratique de Htaccess : à lire avant de poser

Message le Dim Déc 07, 2014 18:24

Bonjour merci pour ce topic et les exemples!!

Par contre je n'arrive pas a faire quelque chose :

J'aimerai rediriger: www.summaries.be/inschrijven.php

Vers: www.summaries.be/inschrijven

Mais je ne sais pas comment faire car mon serveur me montre un belle erreur 500 a chaque fois que j'essaie ... :'(

Merci de votre aide

Mtth


Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :