Mod-rewrite pour les débutants




 

Un court article dans le langage humain

Cet article n'est pas un guide de complet à mod_rewtite Apache ni. Htaccess. Son but est de vous aider - le webmaster - de créer des "versions" mod_rewriten de vos pages Web dynamiques, même si vous disposez de peu de connaissances techniques. Je ne vais pas vous montrer tous les petits trucs-et-astuces - mon objectif est de ramener toute la complexité de la documentation d'Apache à 1-2 pages du langage humain - simple et rapide.

Qu'est-ce que mod_rewrie?

Apache mod_rewrite est l'extension qui vous permet de ré-écriture des URL de vos pages Web. Si votre serveur supporte cette technologie (la plupart des hébergeurs Linux ne de nos jours) vous êtes en mesure de réécrire l'URL dans pratiquement tous ce que vous voulez. Le plus souvent elle est utilisée pour réécrire l'URL des pages Web générées dynamiquement, comme http://www.mywebsite.com/index.php?par1=1&par2=2&par3=2 ...

Cela peut facilement être «traduits» en http://www.mywebsite.com/par1/par2/par3

Pourquoi mod_rewrite?

- Moteur de recherche d'optimisation - il ya beaucoup de débats sur ce sujet, mais il est encore vrai que les liens statiques recherchez rang mieux que les dynamiques. Voici une confirmation de Google sur ce sujet:

"Vos pages sont générées dynamiquement. Nous sommes en mesure d'indexer des pages générées dynamiquement. Cependant, parce que notre robot d'exploration pourraient écraser et qui servent de lieux d'écrasement du contenu dynamique, nous limitons le nombre de pages dynamiques de l'index. De plus, nos robots d'exploration mai suspect une URL avec plusieurs paramètres dynamiques peuvent être la page ressemble à une autre URL avec des paramètres différents. Pour cette raison, nous recommandons d'utiliser moins de paramètres, si possible. Généralement, les URL avec 1-2 paramètres sont explorés plus facilement que ceux avec de nombreux paramètres. "

- La convivialité - Certains utilisateurs se souvenir des URL visuellement. Même si dans les favoris, ils peuvent facilement reconnaître un lien comme http://www.mywebsite.com/services.html que http://www.mywebsite.com/index.php?task=12 par exemple.

- Sécurité - mod_rewrite vous permet de masquer les paramètres passés dans la demande. Au fond de vos pages dynamiques doivent être suffisamment en sécurité, même sans mod_rewrite. Mais cachant les paramètres diminuera le risque d'attaque.

Comment l'utiliser?

Mod_rewrite est vraiment puissant si vous êtes familier avec les expressions régulières qui l'utilise. Mais l'apprentissage de la syntaxe motif entier peut être assez compliqué, surtout pour l'utilisateur non-technique. Thats pourquoi je vais vous enseigner à plusieurs modèles simples qui sont assez jolie pour obtenir votre URL de site web réécrit.

Commençons:

Vous devez d'abord créer un fichier nommé. Htaccess et le placer exactement dans le dossier où vous souhaitez que la réécriture de prise d'effet (il sera également en vigueur sur tous les sous-dossiers). Au cas où vous avez déjà un. Htaccess vous pouvez simplement ajouter les lignes à celle-ci (si elle a déjà mode_rewrite directives que vous pouvez les mess cependant).

Ouvrez-le dans un éditeur de texte simple une commençant par:

Options + FollowSymLinks

RewriteEngine on

Maintenant, le moteur de réécriture est allumé. Vous pouvez maintenant commencer à ajouter autant de règles de réécriture que vous voulez. Le format est simple:

RewriteRule rewrite_from rewrite_to

Here "RewriteRule" est un texte statique, c'est à dire vous ne devriez pas changer. "rewrite_from" est l'adresse qui sera tapé dans le navigateur et "rewrite_to" - quelle page du serveur pour activer réellement. Les deux peuvent contenir des "masques", mais en "rewrite_to" Nous n'utiliserons $ et discutera plus ou "rewrite_from" partie. Permettez-moi de "vous répondre" avec les masques très peu vous aurez besoin et vous apporter quelques échantillons. Vous verrez comment c'est facile.

Arrêtons de parler théorie et voir un exemple. Imaginons que votre serveur fonctionne un e-shop, qui utilise des URL comme index.php? Tâche categories = à la liste des catégories, index.php? Catégorie task = & id = 5 pour montrer le contenu d'un catégorie et d'autres paramètres en «mission» pour d'autres choses.

RewriteRule ^(.*). html tâche index.php? = $ 1

Qu'est-ce que ça signifie? Il s'agit d'une règle de réécriture qui vous permet de faire vos URL de l'air de "statique". Dans ce catégories.htlm exemple sera "traduit" à index.php? Tâche catégories =. Donc, vous n'avez plus besoin Web dynamiques à la liste-il des catégories, mais peut écrire catégories.htlm

Mais qu'est-ce que tous ces personnages étranges signifie?

- Caractère ^ marque le début. Ie vous dire au serveur qu'il ne doit pas s'attendre à autre chose avant.

- (.*) - Cette combinaison est la plus souvent utilisée et il signifie littéralement «tout». Donc tout ce que vous tapez avant ". Html" (c'est à dire votre nom de fichier fake) sera passé en tant que:

- $ 1 - Il s'agit d'un paramètre, dire où le premier masque doit être fait. Si vous avez plus d'un des masques (les masques sont tout ce que vous utilisez pour représenter le texte dynamique ou les noms de fichiers), vous pouvez utiliser 2 $, etc $ 3 Vous en verrez plus dans les exemples suivants.

Donc, si vous avez catégories.htlm il sera traduit index.php info? Tâche catégories =, services.html en index.php? Tâche services = etc ..

Que faire si vous avez plus d'un paramètre? Premièrement, vous devez utiliser certains caractères comme séparateur:

RewriteRule ^(.*)-(.*). html tâche index.php? = $ 1 & language = $ 2

Voici comment vous pouvez aussi passer la tâche et la langue. Par exemple:

catégories-englist.html sera traduit en index.php? catégories task = & language = english.

IMPORTANT: Si vous avez d'abord écrire

RewriteRule ^(.*). html tâche index.php? = $ 1

La seconde mai ne fonctionnera pas. Vous devez commencer toujours à partir de la règle la plus compliquée à la plus simple.

Make it Better:

La règle (.*) est trop générale et souvent mai vous empêcher de faire de plus la complexité des règles de réécriture. Il est donc recommandé de «limiter» les règles en quelque chose de plus concret. Voici quelques conseils:

- Utiliser le «OU». Dans notre e-shop par exemple nous n'avons que peu de tâches "possible" passé à index.php. Permet de dire:

index.php? task = catégories

index.php? task = catégorie

index.php? task = produit

index.php? task = services

Que se passerait-il si vous souhaitez utiliser votre about.html fichier statique? Il sera réécrit en index.php? Task = environ et ne fonctionnera pas. Vous pouvez donc utiliser l'opérateur OR et de limiter la réécriture uniquement les cas dont vous avez besoin:

RewriteRule ^ (catégories | catégorie | produit | services). Index.php HTML? Task = 1 $

Cela indique au serveur de réécrire que si le nom du fichier est catégories.htlm product.html OU OU OU category.html services.html

- Utilisation de "numéros". Vous pouvez facilement limiter la réécriture de réécrire si elle ne remplit que les numéros à un certain endroit:

RewriteRule ^ rubrique-([0-9] *). Index.php HTML? Catégorie task = & id = $ 1

Avec ([0-9] *) un masque de vous dire que la réécriture du moteur que sur la place de la masquer doivent s'attendre que des chiffres. Donc si elle voir la catégorie-english.html il ne sera pas à réécrire index.php? Catégorie de tâche = & id = anglais, mais pour index.php? = Catégorie de tâche & language = english (en raison de la règle que nous avons montré plus haut - RewriteRule ^ (. *)-(.*). html tâche index.php? = $ 1 & language = 2 $.).

Exemple complet: Voici comment regarder le fichier. Htaccess final pour notre imaginaire e-shop:

--------

Options + FollowSymLinks

RewriteEngine on



RewriteRule ^(.*)-(.*). html tâche index.php? = $ 1 & language = 2 $.

RewriteRule ^ (catégories | catégorie | produit | services). Index.php HTML? Task = 1 $

RewriteRule ^ rubrique-([0-9] *). Index.php HTML? Catégorie task = & id = $ 1

--------

 
Merchant Account FournisseursGagner de l'argent sur Internet en utilisant le marketing de filialeHistoire du sharewareManaged FirewallsComment faire l'argent en vendant sur eBay - It's All About MarketingEzine définition trop absoluThe Remains question, comment obtenez-vous ces Qualité Retour Links?Internet Video coalitions Marketing-Vente-Promotion et publicité Enregistrement des milliers de dollars!Affordable Web Site Design CompaniesAméliorer SEF-Ness à améliorer le classementTrack Down "Hidden" produits pour la revente sur eBayMeilleur Site Internet HostsInternet Marketing - Trying To Make Life aux clients le tempsMake Money From Internet Rédaction - Top 5 conseilsInternet Marketing - Pas de retraite sans butObtenez le maximum de votre site web - 10 Simple StepsGuide de promotion de site Web - Part TwoHow To Make Money On The InternetRéutilisation du contenu des Blog RSSTrafic Avalanche - Tout n'est pas dans vos stats trafic est important

© 2007-2012 Geocitoyen.com