Das Modul mod_rewrite Teil 4

In dieser Veröffentlichung werden wir auf diesen Leitlinien berühren, die keine Zeit in den vorherigen Teilen zu decken. Diese Richtlinien können nicht auf Verzeichnisebene definiert werden. Dies bedeutet, dass Sie den Zugriff auf den Apache-Web-Server-Konfigurationsdatei (httpd.conf) haben sollte.

Typischerweise werden solche Benutzer haben Zugriff auf «root» oder Serveradministrator.

Wenn Sie alle Vorgänge protokollieren wollen geführt , um die mod_rewrite verwenden, können Sie es mit Hilfe der folgenden Einträge aktivieren: RewriteLog /usr/local/apache/logs/mod_rewrite_log
RewriteLogLevel 1
RewriteLog /usr/local/apache/logs/mod_rewrite_log
RewriteLogLevel 1

Diese Linie ist notwendig, in der Eingabe "Schritt 2: Konfigurieren Sie den Hauptserver" in httpd.conf, nicht in .htaccess!

Alle mod_rewrite Manipulationen werden in dieser Datei aufgezeichnet werden. Benennen Sie die Log-Datei kann alles sein. Sie können einen absoluten oder relativen (bezogen auf die ServerRoot) Pfad zur Datei angeben.

Wenn Sie möchten , separate Protokolldateien für verschiedene virtuelle Hosts zu erhalten, müssen Sie die Änderungen in der "Section 3: Virtual Server" zu machen, wie zum Beispiel: 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 kann typischerweise im Bereich von 1 bis 8 ermittelt werden, der erste Pegel ist ausreichend. Höhere Gehalte an debbaginga verwendet.

Eine weitere Richtlinie, die für Cloaking Zwecke ist sehr praktisch - die sogenannten Rewriting Maps. Diese - die Dateien Schlüssel / Wert - Paaren, in der Regel in Textdateiformat: 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

Die Tasten, wie Sie, die Hostnamen oder IP-Adressen zu sehen. In diesem vereinfachten Beispiel ist der Wert immer das gleiche - «Spinne». Natürlich in reale Werte sind andere Datei. Diese Direktive kann in der zweiten ( "Die Konfiguration des primären Servers") oder dritten ( "Virtual Server") Abschnitt der Datei httpd.conf geschrieben werden: RewriteMap botBase txt:/www/yourdomain/spiderspy.txt

"Überschreiben Map" haben keine Auswirkungen auf den gesamten Server.

Auch in der .htaccess - Datei geschrieben: RewriteCond ${botBase:%{REMOTE_HOST}} =spider [OR] RewriteCond ${botBase:%{REMOTE_ADDR}} =spider RewriteRule ^(.*).htm$ $1.htm [L] RewriteRule ^.*.htm$ index.html [L] [L]

Diese Bedingungen werden die Systemüberprüfung, ob die Suchmaschine Abfrage gemacht wird. Zu diesem Zweck wird eine Suche nach spiderspy.txt Datei. Wenn der Schlüssel gefunden wird, wird es auf den Wert "Spinne" zurück und "Bedingung" wird wahr sein.

Dann wird die erste RewriteRule. Das bedeutet, dass die angeforderte «HTM» Seite wird die Spinne eingespeist werden. Die $ 1 gleich der Teil in Klammern «^ (. *). Htm $», das heißt, wird der Dateiname gleich bleiben.

Wenn die URL eine gewöhnliche Besucher genannt wird, gilt die zweite "Regel": Der Benutzer wird auf der Seite «index.html» umgeleitet werden.

Da die "HTM" Seiten werden nur "Spinne" gelesen werden, können sie für die Suchmaschinen optimiert werden, beziehungsweise. Sie können auch die Datei verwenden «dbm» Format statt Klartext. Das binäre Datenformat ermöglicht es Ihnen, um die Suche zu beschleunigen, was besonders wichtig ist, wenn man mit sehr großen Listen von Suchmaschinen arbeiten. Das oben genannte Beispiel, bietet eine einfache Cloaking-Funktionalität. Alle gewöhnlichen Besucher werden immer auf die Seite «index.html» umgeleitet werden und wird nicht kein Zugriff über die mod_rewrite Protokolle anzumelden.

Sie können ein paar Zeilen PHP-Code (Perl, etc.) in Ihrer Anwendung ersetzen nur ein oder zwei Zeilen mod_rewrite. Das letzte Beispiel veranschaulichen wird dies näher erläutert.

Das Ziel - zeigen den Besuchern die "Foto des Tages". Der Besucher klickte auf den Link http://yoursite.com/pic.html sehen das beste Foto oder ein Bild des Tages, und so jeden Tag. Wir werden mit den Server-Variablen arbeiten:

TIME_MON
TIME_DAY

Wir legen die .htaccess - Datei in einer einzigen Zeile: RewriteRule ^pic.html$ pic-%{TIME_MON}-%{TIME_DAY}.html

Die angeforderte URL wird überschrieben, zum Beispiel:

pic-08-28.html
pic-08-29.html
pic-08-30.html
usw.

Nun, alles, was Sie tun müssen - ist es, die Dateien einmal mit der richtigen Namen zum Download und über die täglichen Aktualisierung Links vergessen. Variable Zeit kann auch für andere Frequenz verwendet werden.

Es war das jüngste Beispiel in einer Reihe von Publikationen über die wunderbare Modul mod_rewrite. Natürlich war es unmöglich, auf alle Nuancen, Richtlinien, Variablen usw. zu berühren in dieser Veröffentlichung war es das Ziel anders - einen Überblick und das Verständnis für die Grundlagen geben, und so zu sagen "in Wissen bringen."