La partie module mod_rewrite 4

Dans cette publication, nous aborderons ces lignes directrices, qui ne disposent pas de temps pour couvrir dans les parties précédentes. Ces directives ne peuvent pas être définies au niveau du répertoire. Cela signifie que vous devez avoir accès au fichier de configuration du serveur Web Apache (httpd.conf).

En règle générale, ces utilisateurs ont accès à «root» ou administrateur du serveur.

Si vous voulez enregistrer toutes les opérations effectuées à l' aide du mod_rewrite, vous pouvez l' activer en utilisant les entrées suivantes: RewriteLog /usr/local/apache/logs/mod_rewrite_log
RewriteLogLevel 1
local RewriteLog /usr/local/apache/logs/mod_rewrite_log
RewriteLogLevel 1
RewriteLog /usr/local/apache/logs/mod_rewrite_log
RewriteLogLevel 1

Cette ligne est nécessaire d'entrer dans le «Étape 2: Configurer le serveur principal" dans httpd.conf, pas dans .htaccess!

Toutes les manipulations mod_rewrite seront enregistrées dans ce fichier. Nom du fichier journal peut être quelque chose. Vous pouvez spécifier un chemin absolu ou relatif (par rapport au ServerRoot) dans le fichier.

Si vous souhaitez conserver les fichiers journaux séparés pour différents hôtes virtuels, vous avez besoin de faire des changements dans la "Section 3: Virtual Server", tels que: ServerAdmin [email protected] DocumentRoot /usr/www/htdocs/yourdomain ServerName yourdomain.com RewriteLog /usr/apache/logs/yourdomain_mod_rewrite_log
RewriteLogLevel 1
ServerAdmin [email protected] DocumentRoot /usr/www/htdocs/yourdomain ServerName yourdomain.com RewriteLog /usr/apache/logs/yourdomain_mod_rewrite_log
RewriteLogLevel 1

RewriteLogLevel peut être déterminée dans une plage de 1 à 8. En général, le premier niveau est suffisant. Des niveaux plus élevés sont utilisés pour debbaginga.

Une autre directive, qui est très pratique à des fins de dissimulation - les soi-disant Cartes Réécriture. Ce - les fichiers contenant des paires clé / valeur, généralement au format de fichier texte: cde2c920.infoseek.com spider 205.226.201.32 spider cde2c923.infoseek.com spider 205.226.201.35 spider cde2c981.infoseek.com spider 205.226.201.129 spider cde2cb23.infoseek.com spider 205.226.203.35 spider

Les touches, comme vous pouvez le voir, les noms d'hôte ou des adresses IP. Dans cet exemple simpliste, la valeur est toujours le même - «araignée». Naturellement, en valeurs réelles sont un autre fichier. Cette directive peut être écrit dans la seconde ( "La configuration du serveur principal") ou troisième ( "Virtual Server") section du fichier httpd.conf: RewriteMap botBase txt:/www/yourdomain/spiderspy.txt

"Ecraser carte" ont un effet sur l'ensemble du serveur.

En outre, dans le fichier .htaccess est écrit: RewriteCond ${botBase:%{REMOTE_HOST}} =spider [OR] RewriteCond ${botBase:%{REMOTE_ADDR}} =spider RewriteRule ^(.*).htm$ $1.htm [L] RewriteRule ^.*.htm$ index.html [L] [L]

Ces conditions feront la vérification du système si la requête de moteur de recherche est faite. A cet effet, une recherche de fichier spiderspy.txt. Si la clé est trouvé, il sera retourné à la valeur "araignée" et "condition" sera vrai.

Puis, le premier RewriteRule. Cela signifie que la page demandée «.htm» sera alimenté à l'araignée. Le 1 $ est égal à la partie entre parenthèses «^ (. *). Htm $», qui est, le nom du fichier restera le même.

Si l'URL est appelé un visiteur ordinaire, la seconde «règle» applique: l'utilisateur sera redirigé vers la page «index.html».

Comme les pages ".htm" seront en lecture seule "araignée", ils peuvent être optimisés pour les moteurs de recherche, respectivement. Vous pouvez également utiliser le fichier de «dbm» le format au lieu de texte brut. Le format de données binaires vous permet d'accélérer la recherche, ce qui est particulièrement important si vous travaillez avec de très grandes listes de moteurs de recherche. L'exemple donné ci-dessus, offre une fonctionnalité de cloaking simple. Tous les visiteurs ordinaires seront toujours redirigés vers la page «index.html» et ne pas accès connectant au-delà des journaux de mod_rewrite.

Vous pouvez remplacer quelques lignes de code php (perl, etc.) dans votre application en utilisant seulement un ou deux lignes mod_rewrite. Le dernier exemple illustrera cela plus en détail.

Le but - pour montrer aux visiteurs la "photo du jour". Le visiteur a cliqué sur le lien http://yoursite.com/pic.html voir la meilleure photo ou une image de la journée, et ainsi tous les jours. Nous allons travailler avec les variables du serveur:

TIME_MON
TIME_DAY

Nous plaçons le fichier .htaccess dans une seule ligne: RewriteRule ^pic.html$ pic-%{TIME_MON}-%{TIME_DAY}.html

L'URL demandée est écrasée, par exemple:

pic-08-28.html
pic-08-29.html
pic-08-30.html
et ainsi de suite.

Maintenant, tout ce que vous avez à faire - est de télécharger les fichiers une fois avec des noms propres et oublier les liens quotidiens de mise à jour. temps variable peut également être utilisé pour d'autres fréquences.

Il était le dernier exemple d'une série de publications sur le merveilleux module de mod_rewrite. Bien sûr, il était impossible de toucher à toutes les nuances, les directives, les variables, etc. dans cette publication, l'objectif était différent - donner un aperçu et une compréhension des bases, et pour ainsi dire «apporter le savoir."