Pratique de Htaccess : à lire avant de poser
21 messages
• Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- mahdivitchee
- WRInaute discret

- Messages: 175
- Inscription: 22 Mar 2010
Pratique de Htaccess : à lire avant de poser
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
)
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 - ........)
*****************************
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 :
******************************
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 :
*******************************
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 :
***********************
par moi :
Toutes tes pages en ...index.php5?title=quelquechose seront redirigé en 301 (redirection permanente et définitive) vers les pages .../quelquechose.
>>solution :
**************************
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 )
****************************
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
******************************************
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
***************************************
j'ajoute dans ce topic les problème qui sont résolu
Bonne journée
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
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
Dernière édition par mahdivitchee le Mer Sep 01, 2010 17:03, édité 4 fois.
-

Madrileño - Madrileño

- Messages: 28404
- Inscription: 7 Juil 2004
Re: Pratique de Htacess : à lire avant de poser
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.
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.
- idefix
- WRInaute occasionnel

- Messages: 319
- Inscription: 17 Jan 2007
Re: Pratique de Htaccess : à lire avant de poser
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] ?
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

- Messages: 175
- Inscription: 22 Mar 2010
Re: Pratique de Htaccess : à lire avant de poser
Bonjour Idefix
si pas facile de t'explique ça surtout avec mon français
mais voila j'ai fait un petit recherche dans le net
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 :
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
qu'il que exemple dans le net :
voila qu'il code utile :
>> Code pour sécuriser un site contre les hacker
>> Redirection en gardent l'url origine
>> Redirige tout un répertoire vers sous domaine
>> Faire une réécriture ou une redirection que si le fichier n'existe pas
Bonne journée
si pas facile de t'explique ça surtout avec mon français
mais voila j'ai fait un petit recherche dans le net
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
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

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Pratique de Htaccess : à lire avant de poser
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:
_GET:
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:
http://www.example.com/module/action/param1/param2
Et tous les traitements en PHP:
Si le rewrite était absent, ces 2 solutions en non rewritées ne posent pas de problème non plus.
(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.
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Pratique de Htaccess : à lire avant de poser
- mahdivitchee
- WRInaute discret

- Messages: 175
- Inscription: 22 Mar 2010
Re: Pratique de Htaccess : à lire avant de poser
merci spout pour les codes et pour le lien 
-

LuciferX - WRInaute discret

- Messages: 54
- Inscription: 29 Sep 2006
Re: Pratique de Htaccess : à lire avant de poser
Un autre bon lien à ajouter serait http://www.htaccesstools.com
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: Pratique de Htaccess : à lire avant de poser
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Pratique de Htaccess : à lire avant de poser
Je trouve la fonction censée nettoyer le code, complètement inutile et mal conçu.
Rappel :
* 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.
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

- Messages: 19420
- Inscription: 19 Avr 2002
Re: Pratique de Htaccess : à lire avant de poser
Merci, d'ailleurs je vais épingler cette discussion dans ce forum 
21 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. 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 :
- Permanence pratique du htaccess ?
- CRM et questions à se poser
- Guide des question à se poser
- je peut poser le systeme apres ?
- une question a poser sur du référencement
- Questions à se poser avant de développer un site
- Nofollow et la terrifiante question que je ne devrais pas poser !!!!
- Un gros pavé javascript peut-il poser des problèmes?
- Problème pour poser une image sur mon Footer
- Bonjour je ne sas pas si je suis au bon endroit pour poser ma question
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


