Guide de .htaccess et mod_rewrite
Guide rapide pour htaccess et mod_rewrite
Utilisation de apache- "puces" mod_rewrite et .htaccess considéré comme quelque chose d' insaisissable parmi les nombreux webmasters déçus, mais il est l' une des tâches les plus difficiles rencontrés par presque tous les développeurs web.
Je veux vous offrir une solution simple au lieu de trouver plus difficile de comprendre comment le mod_rewrite et .htaccess. La plupart des exemples utilisent fournies dans cet article peuvent être simplement copiés et téléchargés sur votre serveur web.
Afin de ne pas répéter la même chose des centaines d'autres webmasters, je décide de créer simplement cette page comme un indice pour un usage public.
Encore une fois, htaccess - est un fichier de configuration qui vous permet de gérer le serveur Web Apache, mod_rewrite - est la réécriture du moteur, par lequel un serveur Web peut modifier l'URL quand ils sont téléchargés.
fichier .htaccess - un fichier texte qui est nommé .htaccess. On pourrait même dire qu'il est un fichier qui ne se compose que de l'expansion, car elle ne contient pas les noms des (jusqu'à caractère "point"). En règle générale, ce fichier se trouve dans le répertoire racine principale de votre serveur, mais vous pouvez également créer des fichiers séparés pour différents répertoires htaccess sur votre site.
canonisation
L'exemple le plus simple - pour vous assurer que le site ne contient pas d'erreurs pour la canonisation de la page d'accueil.
Beaucoup de webmasters ne souffrent pas d'un très bon classement dans les moteurs de recherche en raison du fait qu'il existe plusieurs versions de la page d'accueil URL, par exemple:
http://www.site.com
http://site.com
http://www.site.com/index.html
http://site.com/index.html
Ceux-ci apparaissent comme la page URL différente, en dépit du fait qu'ils pointent vers le même contenu. Google décide finalement quelle version est plus correct, mais il peut prendre un certain temps, et pendant ce temps, vous pouvez baiser des problèmes inutiles.
Pour résoudre ce problème, il suffit d'ajouter la ligne suivante à votre htaccess fichier:
Options + FollowSymLinks
RewriteEngine sur
RewriteCond% {HTTP_HOST} ^ site.com
RewriteRule (. *) Http://www.site.com/$1 [R = 301, L]
RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / index \ .html \ HTTP /
RewriteRule ^ index \ .html $ http://www.site.com/ [R = 301, L]
Ce code vous permet de rediriger toutes les options possibles sur la page d'accueil http://www.site.com.
La conversion de fichiers HTML à PHP
Parfois, vous devez utiliser PHP-code sur la page HTML site Web statique. Au lieu de rediriger toutes vos pages HTML en leur équivalent PHP version, vous avez juste besoin de "dire" votre serveur, il doit analyser les fichiers HTML comme PHP.
AddHandler application / x-httpd-php .html
Ce code fonctionne avec tous les fichiers, donc si vous voulez créer un XML- dynamique ou ASP-fichiers qui se comportent comme PHP fichiers, vous avez juste besoin de faire les modifications suivantes:
AddHandler application / x-httpd-php .xml
AddHandler application / x-httpd-php .asp
pages d'erreur
pages d'erreur personnalisées peuvent être facilement personnalisés, tels que CPanel (ou DirectAdmin), mais si vous voulez personnaliser la page d'erreur par le htaccess fichier, ajoutez la ligne suivante:
Traitement des erreurs de frappe # 404 - Fichier non trouvé
ErrorDocument 404 http://www.site.com/404.php
Traitement des erreurs de frappe # 403 - Accès refusé
ErrorDocument 403 http://www.site.com/403.php
répertoire d'indexation
Pour empêcher les robots de Google pour indexer le répertoire , vous devez définir la page d'index pour les répertoires nécessaires. Il est pas obligatoire pour certains serveurs.
DirectoryIndex index.php3
Je préfère faire une redirection vers le répertoire de la page d'index, ou d'une autre page appropriée. Par exemple, www.site.com/images/ peut être transmis à www.site.com et www.site.com/forum/ peuvent être transmis à www.site.com/forum/index.php~~V
Redirection pages
Un excellent exemple de l'utilisation htaccess pour rediriger une page à l'autre:
Redirection 301 /old-page.php http://www.site.com/new-page.php
Redirection votre flux Feedburner
Si vous voulez changer votre alimentation au service Feedburner, vous aurez besoin de rediriger votre alimentation en courant à la nouvelle adresse http://feeds.feedburner.com/blog-feed.
Rediriger devrait demander à tous les visiteurs, sauf le robot Feedburner:
RewriteCond% {HTTP_USER_AGENT}! FeedBurner
RewriteRule ^ votre flux \ .xml $ http://feeds.feedburner.com/blog-feed [R, L]
Amélioration de hotlink protection
Si vous voulez éviter d'autres sites se réfèrent directement aux images situées sur votre site, mais pour permettre au moteur de recherche Google, Yahoo et MSN les indexer, vous devez utiliser le code suivant:
RewriteEngine sur
RewriteCond% {HTTP_REFERER}.
! RewriteCond% {HTTP_REFERER} ^ http // :? (. [. ^] + \) Site \. [NC]
RewriteCond% {HTTP_REFERER}! Google \. [NC]
RewriteCond% {HTTP_REFERER}! Rechercher \ Q = cache [NC]
RewriteCond% {HTTP_REFERER}! Msn \. [NC]
RewriteCond% {HTTP_REFERER}! Yahoo \. [NC]
RewriteCond% {REQUEST_URI}! ^ / Hotlinker \ .gif $
RewriteRule \. (Gif | jpg | png) /hotlinker.gif $ [NC, L]
l'image hotlinker.gif - une image que vous avez créé. Je suggère d'utiliser quelque chose comme "Cette image est sur www.site.com site" et votre logo.
Personnellement, je laisse hotlink, mais utilise une certaine solution qui utilise Google Images service et sites Web, hotlinkery pour obtenir des liens vers votre site .
Création de liens CNC avec mod_rewrite
Apache module de réécriture est principalement utilisé pour la conversion d'URL dynamique comme www.site.com/product.php?id=123 en statique et conviviale type www.site.com/product/123.
RewriteEngine sur
RewriteRule ^ produit /([^/\.]+)/?$ product.php? Id = $ 1 [L]
Un autre exemple, ce qui conduit URL: www.yoursite.com/script.php?product=123 à www.yoursite.com/cat/product/123/~~V esprit
RewriteRule chat /(.*)/(.*)/$ /script.php?$1=$2
Suppression des chaînes de requête
Certains sites proposent des liens vers le vôtre, en ajoutant la chaîne de requête. Par exemple, vous pouvez vous référer à votre site en utilisant ce lien http://www.site.com/index.php?source=seoblog, juste pour savoir où votre trafic vient. Cela provoque l'apparition d'un contenu en double pour votre site, si vous avez besoin de mettre en place une redirection vers votre page d'accueil:
RewriteCond% {QUERY_STRING} ^ source = RewriteRule (. *) / 1 $? [R = 301, L]
Alors que tous. Si vous avez quelque chose à ajouter, s'il vous plaît kamenty dans ...
Sur la plupart des webhosts installé deux ou plusieurs versions de PHP. Habituellement est defaul 4ème. Cependant, quelles seraient vos scripts PHP traités dans la version 5, vous pouvez vous inscrire dans le htaccess:
AddType application / x-httpd-php5 .php
Ou vous pouvez ajouter à chaque .php5 extension de fichier au lieu de simplement .php.
Tel est le cas si vous êtes trop paresseux rediktirovat htaccess.
Les paramètres du fichier de Exemples
Alors que certains de nos valeureux seo "gourous" traduire les articles étrangers, sans prendre la peine d'installer des liens vers l'article original, je vais vous donner une sélection de codes pour configurer .htaccess.
Presque tous les éléments sont nécessaires, en plus de
- redirection et blocage - ils sont ajustés au besoin
- ainsi que l'installation CNC (ChelovekoPonyatnyhURL) - en règle générale, vous pouvez obtenir la fonctionnalité CMS
Comment créer un .htaccess?
- cahier ouvert
- écrire du code (et alors vous pouvez le faire
- enregistrer le document avec le nom .htaccess
- remplir la racine du site (ou dans un dossier sur le serveur, où nous allons faire des ajustements)
* Yoursitename.ru exemples remplacent l'adresse de votre domaine
htaccess par défaut
1. Définir la page d'accueil par défaut
DirectoryIndex pagename.html
2. Détermination de la page d'erreur (erreur) dans le .htaccess
ErrorDocument 403 /403.phpEn conséquence, l'adresse et le nom du fichier peut être différent, par exemple /error/page404.html
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php
3. Protection contre les hotlinks
Le fait que le contenu des sites de volée, il n'y a plus nouvelles. Mais il arrive que la tige avec des images. Ceci afin d'éviter la charge sur le serveur, et le trafic blow-up, nous écrivons:
RewriteEngine OnSi vous voulez un autre site au lieu de 403 erreur se produit une certaine image, la dernière ligne devrait être remplacé par:
RewriteCond% {HTTP_REFERER}! ^ $
# Domaines qui peuvent se référer à des images à partir de votre site
RewriteCond% {HTTP_REFERER} ^ http // :! ([-a-Z0-9] \.) Yoursitename \ .ru [NC]?
# Ne pas afficher les images à hotlink
. RewriteRule \ (gif | jpe g |? Png) $ - [F, NC, L]
RewriteRule \. (Jpg | png | gif) $ Http://yoursitename.ru/images/imagename.jpg [NC, R, L]
4. forcé d' économie au lieu d'ouvrir le fichier
Si vous voulez que vos visiteurs prosmatra place magasin de fichiers en ligne en écriture .htaccess:
AddType application / octet-stream .doc .mov .avi .pdf .xls .mp4
5. fichiers de cache
Dans WordPress il y a un plugin spécial: wp-super-cache. Si vous utilisez également le CMS, qui ne supporte pas la mise en cache, vous pouvez effectuer les réglages suivants dans .htaccess
# Html Cache et htm pour une journéeparamètre Max-âge est donnée en secondes.
<FilesMatch "(html | htm) $.">
Header mis Cache-Control "max-age = 43200"
</ FilesMatch>
# Cache css, javascript et txt fichiers pour une semaine
<FilesMatch "(js | css | txt) $.">
Header mis Cache-Control "max-age = 604800"
</ FilesMatch>
# Caching flash et photos pour un mois
<FilesMatch "(flv | swf | ico | gif | jpg | jpeg | png) $.">
Header mis Cache-Control "max-age = 2592000"
</ FilesMatch>
# Interdiction des scripts de mise en cache
<FilesMatch "\ (pl | php | cgi | spl | scgi | fcgi) $.">
Header unset Cache-Control
</ FilesMatch>
6. Activer erreur lors du débogage
display_errors php_flag sur
Mise en place d' une redirection en utilisant .htaccess
1. redirection 301
La solution optimale pour rediriger les visiteurs de vieux à de nouvelles adresses, si au fil du temps la structure du site a changé, et les anciennes URL peut quelque part pour rester.
Rediriger 301 /oldpage.html http://yoursitename.ru/newpage.html
Il se produit même une option:
Rediriger permanent /oldpage.html http://yoursitename.ru/newpage.htmlMais quelle est la différence fondamentale entre eux, pour être honnête, je ne peux pas expliquer. Peut-être que quelqu'un de lecteurs nous le dira.
2. encollage domaine avec www et non www
Rediriger pour faire face yoursitename.ru sur www.yoursitename.ru
RewriteEngine Onredirect inverse
RewriteBase /
RewriteCond% {HTTP_HOST}! ^ Www.yoursitename.ru $ [NC]
RewriteRule ^ (. *) $ Http://www.yoursitename.ru/$1 [L, R = 301]
RewriteEngine On
RewriteBase /
RewriteCond% {HTTP_HOST}! ^ Yoursitename.ru $ [NC]
RewriteRule ^ (. *) $ Http://yoursitename.ru/$1 [L, R = 301]
3. redirection 302
Si vous travaillez sur le site, vous pouvez temporairement envoyer les visiteurs vers une page spécifique (par exemple, une description du moment où le travail devrait être terminé et comment contacter avec vous).
RewriteEngine surSurfer sur le site sera possible uniquement avec votre adresse IP - 12.345.678.90
RewriteCond% {REQUEST_URI}! /informpage.html$
RewriteCond% {REMOTE_HOST}! ^ 12 \ .345 \ .678 \ .90
RewriteRule $ http://yoursitename.ru/informpage.html [R = 302, L]
4. Redirection vers un autre site
Renvoyer tous les visiteurs vers un autre site, en plus de l'adresse IP spécifiée
ErrorDocument 403 http://www.yoursitename.ru
Ordre deny, allow
Refuser de tous
Permettre de 12.345.678.90
Permettre de 12.345.678.92
5. Forwarding pour sécuriser les connexions https
RewriteEngine On
RewriteCond% {HTTPS}! Sur
RewriteRule Https (*.): //% {HTTP_HOST}% {REQUEST_URI}
Sauf / blocage en utilisant .htaccess
1. L'interdiction de la liste des répertoires
Il est utilisé quand il n'y a pas de fichier d'index, si vous souhaitez refuser l'accès au contenu du dossier (par exemple, images):
Options Tous -IndexesCode inverse, dans le sens de la résolution
Options + Indexes
2. Blocage de l' accès au fichier
Par exemple, cela pourrait être votre .htaccess
<Fichiers .htaccess>
pour permettre, refuser
deny from all
</ Files>
3. Bloquer l' accès à un répertoire
Fermer l'accès à seulement un dossier spécifique
<Directory / accès root />Autoriser l'accès uniquement de certains IP à un dossier spécifique (l'adresse enregistrée par un espace):
Order allow, deny
# Tout le monde sauf ...
permettre de toute
Deny from 198.69.
</ Directory>
# Spécifiez le dossier dans lequel interdire l'accès par nom d'hôte et IPIl est également possible de spécifier dans une liste, et le nom d'hôte et l'adresse IP:
<Directory / accès root />
Ordre deny, allow
deny from all
# Les adresses sont enregistrées à travers l'espace
Permettre de 198.69.144.98 198.69.144.94 198.69.144.92
</ Directory>
# Spécifiez le dossier dans lequel interdire l'accès par nom et IP
<Directory / accès root />
Order allow, deny
# Toute personne ...
permettre de toute
# ... Sauf pour le nom d'hôte et IP
Deny from robot.fromx.com 148.145.21.14
</ Directory>
4. Blocage des ip
Pour les spammeurs ne se soucient pas
<Limit GET>Ils seront bloqués:
Ordre Refuser, Autoriser
Deny from 12.345.678.90
Deny from 90.876.543.
Deny from .tvoe.tv
Permettre de tous
</ Limit>
- utilisateur avec ip 12.345.678.90
- Tous les visiteurs du ip, tombe dans une plage allant jusqu'à 90876543255 90.876.543.0
- et tous les visiteurs du fournisseur de tvoe.tv
Refuser l'accès à certaines adresses IP
# Ban avec 16:18 31-03-2011Fermer l'accès à tout le monde sauf l'IP spécifiée
Order allow, deny
permettre de toute
Deny from 198.69.132.24
Ordre deny, allowSi vous avez besoin de fermer le masque d'accès qui utilisent une adresse incomplète:
deny from all
# Liste IP séparés par un espace à partir duquel l'accès est autorisé
Allow from 194.111.70.48 194.78.47.128
# Adresse incomplèteFermer masque d'accès:
198.69.
# adresses complètes correspondant à la première
198.69.132.24
198.69.136.89
198.69.1.8
# Ban avec 6:18 31-03-2011
Order allow, deny
permettre de toute
Deny from 198.69.
Réglage de la CNC via .htaccess
En règle générale, si vous utilisez WordPress, puis ajustez l'url "sympathique", allez dans Paramètres »Permalinks (NC). Beaucoup CMS prend également en charge de définir l'adresse de la page. Par conséquent, si possible, essayez d'abord de gérer la fonctionnalité du moteur, et passer ensuite à mettre en place htaccess.
1. Comment supprimer des adresses de? P =
Par défaut, l'adresse de la page est la suivante: yoursitename.ru/?p=xxxx, où xxxx - id de l'article.
RewriteCond% {REQUEST_URI} ^ / ([0-9] +) $
RewriteRule. * Http://yoursitename.ru/?p=%1 [R = 301, L]
2. Comment faire pour supprimer la catégorie d'adresses
Par analogie avec la manière précédente de l'écriture
RewriteRule ^ catégorie /(.+)$ http://yoursitename.ru/$1 [R = 301, L]
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.