.htaccess rewriting et expressions regulières

➜.htaccess rewriting et expressions regulières

#1 Friday 5th October 2007 17:21:20 Week 40

BMX
sm

.htaccess rewriting et expressions regulières

expressions regulieres 194p
regular expressions 97p
regex

RewriteRule ^([^.]+)_([^.]+).html$ /rewrite.php?p1=$1&p2=$2 [R=301]
R=301, redirection 301

.htaccess = fichier de configuration apache propre au répertoire, héritées dans l'arborescence
google voit les url, et non le code source, les fichiers htaccess sont inaccessibles !

Offline

 

#2 Tuesday 9th October 2007 22:59:18 Week 41

BMX
sm

Re: .htaccess rewriting et expressions regulières

Un Mémo sur le Mod Rewrite d'Apache >> w3-campus.com/IMG/ppt/Mod_Rewrite.ppt
Fonction Header de Php, à utiliser avec l'astuce de ob_start(); qui met en tampon l'output de la page, cad que n'importe quel header puisse être balancé à n'importe quel endroit dans le code >>http://www.php.net/header

Référencer un Site avec un menu à droite >>
##header



Contenu de la page
Menu De Gauche

##footer

fonction writefichier($str,$file){ ecrit ou réecrit le fichier $file avec le contenu $str }
//Très pratique pour la mise en cache
ex : cache/2007-10-14-nomdelarequeteouinfo.txt
if(is_file("cache/2007-10-14-nomdelarequeteouinfo.txt")) tu l'inclues
else{
tu calcules le fichier
puis tu l'inclus
}

Offline

 

#3 Wednesday 17th October 2007 20:31:47 Week 42

BMX
sm

Re: .htaccess rewriting et expressions regulières

L'Absolute Mod Rewrite :

RewriteRule ^([^.]+).html$ /_Rewrite.php?error=RewriteBasic
ErrorDocument 404 /_Rewrite.php?error=404via
ErrorDocument 300 /_Rewrite.php?error=300
ErrorDocument 403 /_Rewrite.php?error=403

#Pour les cas Extrêmes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /_Rewrite.php?error=404Xtreme
#Au cas ou les erreurs 404 ne passent pas à travers la première méthode, permet de rewriter tous fichier nom existant sur le serveur, ce qui est confortable pour placer ses redirections

Toutes les pages .html n'existent pas, sauf présence du fichier sur le serveur héhé :]

Désavantage, il est alors impossible d'utiliser des répertoires virtuels du même non que les fichiers sur la racine
ex : flash/ ne pourra exister si flash.php existe sur la racine

Offline

 

#4 Thursday 29th May 2008 15:47:13 Week 22

BMX
sm

Re: .htaccess rewriting et expressions regulières

Eléments du Pattern (Certains raccourcis ne fonctionnent pas en PHP !)

    Code     Description
        Marque le caractère suivant comme caractère spécial ou littéral.
    Par exemple, 'n' correspond au caractère 'n'. ' ' correspond à un caractère de nouvelle ligne. La séquence '\' correspond à '', tandis que '(' correspond à '('.
    ^     Correspond au début de la saisie.
    $     Correspond à la fin de la saisie.
    *     Correspond au caractère précédent zéro fois ou plusieurs fois.
    Ainsi, 'zo*' correspond à 'z' ou à 'zoo'.
    +     Correspond au caractère précédent une ou plusieurs fois.
    Ainsi, 'zo+' correspond à 'zoo', mais pas à 'z'.
    ?     Correspond au caractère précédent zéro ou une fois.
    Par exemple, 'a?ve?' correspond à 've' dans 'lever'.
    .     Correspond à tout caractère unique, sauf le caractère de nouvelle ligne.
    (modèle)     Correspond au modèle et mémorise la correspondance. La sous-chaîne correspondante peut être extraite de la collection obtenue, à l'aide d'Item [0]...[n]. Pour trouver des correspondances avec des caractères entre parenthèses ( ), utilisez '(' ou ')'.
    x|y     Correspond soit à x soit à y.
    Par exemple, 'z|foot' correspond à 'z' ou à 'foot'. '(z|f)oot' correspond à 'zoo' ou à 'foot'.
    {n}     n est un nombre entier non négatif. Correspond exactement à n fois le caractère.
    Par exemple, 'o{2}' ne correspond pas à 'o' dans 'Bob,' mais aux deux premiers 'o' dans 'fooooot'.
    {n,}     n est un entier non négatif. Correspond à au moins n fois le caractère.
    Par exemple, 'o{2,}' ne correspond pas à 'o' dans 'Bob', mais à tous les 'o' dans 'fooooot'. 'o{1,}' équivaut à 'o+' et 'o{0,}' équivaut à 'o*'.
    {n,m}     m et n sont des entiers non négatifs. Correspond à au moins n et à au plus m fois le caractère.
    Par exemple, 'o{1,3}' correspond aux trois premiers 'o' dans 'foooooot' et 'o{0,1}' équivaut à 'o?'.
    [xyz]     Jeu de caractères. Correspond à l'un des caractères indiqués.
    Par exemple, '[abc]' correspond à 'a' dans 'plat'.
    [^xyz]     Jeu de caractères négatif. Correspond à tout caractère non indiqué.
    Par exemple, '[^abc]' correspond à 'p' dans 'plat'.
    [a-z]     Série de caractères. Correspond à tout caractère dans la série spécifiée.
    Par exemple, '[a-z]' correspond à tout caractère alphabétique minuscule compris entre 'a' et 'z'.
    [^m-z]     Série de caractères négative. Correspond à tout caractère ne se trouvant pas dans la série spécifiée.
    Par exemple, '[^m-z]' correspond à tout caractère ne se trouvant pas entre 'm' et 'z'.
         Correspond à une limite représentant un mot, autrement dit, à la position entre un mot et un espace.
    Par exemple, 'er' correspond à 'er' dans 'lever', mais pas à 'er' dans 'verbe'.
    B     Correspond à une limite ne représentant pas un mot.
    'en*tB' correspond à 'ent' dans 'bien entendu'.
    d     Correspond à un caractère représentant un chiffre. Équivaut à [0-9].
    D     Correspond à un caractère ne représentant pas un chiffre.
    Équivaut à [^0-9].
    f     Correspond à un caractère de saut de page.
        Correspond à un caractère de nouvelle ligne.
        Correspond à un caractère de retour chariot.
    s     Correspond à tout espace blanc, y compris l'espace, la tabulation, le saut de page, etc. Équivaut à '[ f v]'.
    S     Correspond à tout caractère d'espace non blanc.
    Équivaut à '[^ f v]'.
        Correspond à un caractère de tabulation.
    v     Correspond à un caractère de tabulation verticale.
    w     Correspond à tout caractère représentant un mot et incluant un trait de soulignement. Équivaut à '[A-Za-z0-9_]'.
    W     Correspond à tout caractère ne représentant pas un mot.
    Équivaut à '[^A-Za-z0-9_]'.
    num     Correspond à num, où numest un entier positif. Fait référence aux correspondances mémorisées.
    Par exemple, '(.)1' correspond à deux caractères identiques consécutifs.
    n     Correspond à n, où n est une valeur d'échappement octale. Les valeurs d'échappement octales doivent comprendre 1, 2 ou 3 chiffres.
    Par exemple, '11' et '�11' correspondent tous les deux à un caractère de tabulation. '�011' équivaut à '�01' & '1'. Les valeurs d'échappement octales ne doivent pas excéder 256. Si c'était le cas, seuls les deux premiers chiffres seraient pris en compte dans l'expression. Permet d'utiliser les codes ASCII dans des expressions régulières.
    xn     Correspond à n, où n est une valeur d'échappement hexadécimale. Les valeurs d'échappement hexadécimales doivent comprendre deux chiffres obligatoirement.
    Par exemple, 'x41' correspond à 'A'. 'x041' équivaut à 'x04' & '1'. Permet d'utiliser les codes ASCII dans des expressions régulières.


    Procédures et Fonctions


    Execute : matches=object.Execute(string) Renvoie une collection Matches contenant un objet Match pour chaque correspondance trouvée dans l'élément string. La valeur trouvée est dans Match.value et sa position dans Match.FirstIndex

    Test : boolean=object.Test(string) Lance une recherche d'expression régulière dans une chaîne spécifiée et renvoie une valeur booléenne qui indique si une correspondance selon les critères spécifiés a été trouvée

    Replace : string=object.Replace(string1, string2) Remplace par string2 le texte trouvé dans une recherche d'expression régulière sur la chaîne string1
             

    Ereg : boolean=ereg (pattern, string [, regs]) Recherche dans la chaîne string les séquences de caractères qui correspondent au masque pattern. Si l'argument regs est précisé, les résultats seront enregistrés dans le tableau regs. $regs[1] contiendra la 1ère parenthèse capturante, $regs[2] contiendra la 2ème, etc... Utiliser Eregi pour une recherche insensible à la casse

    Ereg_replace : string=ereg_replace (pattern, replace, string) Recherche dans la chaîne string les occurrences de pattern, puis les remplace par la chaîne replace et retourne la chaîne modifiée. Si pattern contient des parenthèses capturantes, replace pourra contenir des séquences de la forme \digit, qui seront remplacées par le texte capturé par la n-ième parenthèse capturante. \0 correspond à la chaîne originale complète. De 0 à 9 parenthèses capturantes peuvent être utilisées. Les parenthèses peuvent être imbriquées, et leur numéro d'ordre est défini par leur parenthèse ouvrante. Utiliser Eregi_replace pour une recherche insensible à la casse


    Quelques masques utiles Si vous voulez en proposer d'autres... n'hésitez pas !
    (Enlevez ^ et $ pour chercher dans une chaîne plus grande)

    ^d+$ ou ^[0-9]+$     Nombre entier
    ^[_a-zA-Z0-9.+-]+$
    ^[^\/:*?'<>|]+$
    ^[^\/:*?'<>|]{1,8}.[a-zA-Z0-9]{3}$     Nom de fichier Merci JP !
    Améliorations by funky_jah !
    La même pour DOS
    ^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$
    ^([a-zA-Z0-9]+(([.-\_]?[a-zA-Z0-9]+)+)?)@(([a-zA-Z0-9]+[.-\_])+[a-zA-Z]{2,4})$     Adresse email
    ^http://[w.%/?=&#:;+-]{5,}$
    ou ^http://[A-Za-z0-9_.%/?=&#:;+-]{5,}$
    ^(http://)?[a-zA-Z0-9]+([./]?[a-zA-Z0-9_-]+)*$
    ^((.*?)://)?(([^:]*):([^@]*)@)?([^/:]*)(:([^/]*))?([^?#]*/?)?(?([^?#]*))?(#(.*))?$     URL
    en PHP
    by funky_jah !
    by Goulh !
    ]*>(.| )*( )?     Pour supprimer tous les scripts d'un source
    Merci funky_jah !

Offline

 

Board footer

Blog, Sitemap, Projets, Videos XXX Allopass, Rachat de Credit