|
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 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. 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: IMPORTANT: Si vous avez d'abord écrire Make it Better: - Utiliser le «OU». Dans notre e-shop par exemple nous n'avons que peu de tâches "possible" passé à index.php. Permet de dire: 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: -------- |



















