25 .htaccess Regeln, die jeder sollte Web-Entwickler wissen

Mit dem Thema:


Файл-конфигуратор Apache-серверов .htaccess


Bevor wir beginnen, ziehe ich Ihre Aufmerksamkeit auf die Tatsache, dass der Missbrauch der Verwendung von .htaccess in einem schlechten Leistung Ihrer Website zur Folge haben kann. Die Hauptregel ist für die Durchführung dieses zu verwenden .htaccess oder das Problem ist , nur in dem Fall , wenn es keine anderen Möglichkeiten.

Stellen Sie sicher, dass Sie eine Sicherungskopie der ursprünglichen Datei .htaccess für Ihre Website, bevor Sie Änderungen vornehmen. Denken Sie auch daran - Betrieb die folgenden Regeln hängt von den individuellen Einstellungen Ihres Web-Server angegebenen Host. Einige Richtlinien sind verboten und dürfen nicht arbeiten.

.htaccess (aus dem Englischen Hypertext - Zugang ..) - zusätzliche Konfigurationsdatei von Apache Web - Server, und der Server wie ihn. Es erlaubt Ihnen, eine große Anzahl von zusätzlichen Parametern und Berechtigungen des Web-Servers in separaten Verzeichnissen (Ordnern), wie zum Beispiel den kontrollierten Zugriff auf die Verzeichnisse zu setzen, die Umleitung von Dateitypen usw., ohne die Master-Konfigurationsdatei ändern.

.htaccess - Datei kann in einem beliebigen Verzeichnis platziert werden. Die Richtlinien in dieser Datei gelten für alle Dateien im aktuellen Verzeichnis und alle Unterverzeichnisse (sofern diese Richtlinien außer Kraft gesetzten Richtlinien zugrunde liegenden Datei .htaccess sind).

Damit diese Dateien zu können , verwenden .htaccess, entsprechende Einstellung der Haupt - Konfigurationsdatei (den Wert der Anweisung AllowOverride muss auf alle eingestellt werden). In der Regel erlaubt die große Mehrheit der Wirte Ihre .htaccess-Dateien zu verwenden.

1. Laden Sie keine Dateien von externen Websites

Sind Sie müde von Menschen, die Bilder veröffentlicht auf Ihrer Website veröffentlichen - auf ihre Ressourcen zu verschwenden, damit Sie Ihren Traffic und die Schaffung eine unnötige Belastung für Ihr Hosting? Websites von Drittanbietern - Dieser Code am Ende der .htaccess-Datei gespeichert wird, wird das Herunterladen der Bilder zu verhindern.

	 Optionen + FollowSymlinks
	 # Block-Download-Dateien von externen Websites
	 RewriteEngine On
	 RewriteCond% {HTTP_REFERER}! ^ $
	 RewriteCond% {HTTP_REFERER} ^ http // :! (Www.) Site.com/ [nc]?
	 RewriteRule * (gif | jpg | png) .. $ Http://site.com/stop.gif[nc] 

Vergessen Sie nicht, site.com auf Ihren Domain-Namen zu ändern und stop.gif Bild erstellen angezeigt, statt der gewünschten Bilder zu werden.

2. Blockieren der gesamten unerwünschten Anfragen von User Agents

Diese Regel erlaubt es Ihnen, unerwünschte User Agent zu blockieren, die potenziell gefährlich sein kann, oder einfach nur die Server mit unnötigen Anfragen überlastet werden.

  Block # die schlechten Bots und Roboter
 SetEnvIfNoCase User-Agent ^ Frontpage [NC, OR]
 SetEnvIfNoCase User-Agent ^ Java. * [NC, OR]
 SetEnvIfNoCase User-Agent ^ Microsoft.URL [NC, OR]
 SetEnvIfNoCase User-Agent ^ MSFrontPage [NC, OR]
 SetEnvIfNoCase User-Agent ^ Offline.Explorer [NC, OR]
 SetEnvIfNoCase User-Agent ^ [Ww] eb [Bb] andit [NC, OR]
 SetEnvIfNoCase User-Agent ^ Zeus [NC]
 Lassen Sie Ordnung, Deny
 Lassen Sie von allen
 Verweigern von env = bad_bot

Liste der User - Agent - Browser, Roboter und Spinnen von Suchmaschinen, Web - Verzeichnisse, Download - Manager, Spam - Bots und schlechte Bots finden Sie unter Liste der User-Agents.

3. Um den Zugriff auf alle außer den angegebenen IP-Adressen verweigern

Wenn aus irgendeinem Grund wollen Sie alle zu deaktivieren oder nur einzelne IP-Adresse Zugriff auf Ihre Website ermöglichen - fügen Sie diesen Code in der .htaccess-Datei:

	 # Verweigern des Zugriffs auf alle außer den angegebenen IP-Adressen
	 Errordocument 403 http://www.domainname.com
	 Bestellen Sie leugnen, erlauben
	 Verweigern von allen
	 Lassen Sie von 124.34.48.165
	 Lassen Sie von 102.54.68.123 

Vergessen Sie nicht auf Ihren Domain-Namen zu ändern domainname.com.

4. Richten Sie SEO-freundliche 301 Redirect

Wenn Sie einen Domain-Namen (oder eine Subsite) bewegen, oder wollen die Benutzer auf eine bestimmte Seite (n) umleiten, ohne Sanktionen durch die Suchmaschinen verwenden Sie diesen Code:

	 # Set up SEO-freundliche 301 Redirect
	 Redirect 301 /1/file.html http://www.site.com/2/file.html 

Vergessen Sie nicht, site.com auf Ihren Domain-Namen, und /1/file.html und /2/file.html die entsprechenden Verzeichnisse und Seiten zu ändern.

5. Erstellen Sie eigene Fehlerseiten

Gebohrt mit der Standardform von Fehlerseiten? Kein Problem - mit dem folgenden Code können Sie einfach ihre eigene Seite erstellen und zeigen dem Anwender genau es:

	 Errordocument 401 /error/401.php
	 Errordocument 403 /error/403.php
	 Errordocument 404 /error/404.php
	 Errordocument 500 /error/500.php 

<Achten Sie darauf, in der Server-Stammverzeichnis Fehler Ordner zu erstellen und sie in den entsprechenden Dateien platzieren. / P>

6. Erstellen Sie eine schwarze Liste von IP-Adressen

Müde von Spam-Kommentare, oder einen bestimmten Benutzer? Block einfach die IP mit dem folgenden Code in die .htaccess-Datei hinzugefügt.

	 # Erstellen eine schwarze Liste von IP-Adressen
	 ermöglichen, von allen
	 leugnen von 145.186.14.122
	 leugnen von 124,15. 

Erfahren Kommentatoren IP-Adresse kann entweder in den Apache-Logs oder durch die Statistik-Dienst. Viele CMS haben ihre eigenen integrierten Tools für Adressen der Besucher zu überwachen. Berichte - zum Beispiel in den Drupal Kommentatoren IP-Adressen im Verwaltungs-Panel finden.

7. Installieren Sie die E-Mail-Adresse des Standard-Administrator

Verwenden Sie diesen Code, um die E-Mail-Adresse, um den Standardwert für den Server-Administrator eingestellt werden.

	 # Die E-Mail-Adresse des Standard-Administrator-Set
	 Serversignature EMail
	 SetEnv SERVER_ADMIN [email protected] 

Vergessen Sie nicht, zu ersetzen [email protected] - Ihre E-Mail-Adresse.

8. schützen bestimmte Datei

Mit dem folgenden Code können Sie den Zugriff auf alle Dateien zu verweigern - auf Antrag einen Fehler 403. Zum Beispiel gegeben werden, schloss ich den Zugriff auf die Datei .htaccess, das Gesamtniveau der Sicherheit vor Ort zu erhöhen.

  # Schützen .htaccess-Datei
 Um zu ermöglichen, verweigern
 leugnen von allen

9. Artikel Kompresse mod_deflate

Als Alternative zu komprimierte Dateien mit gzip, können Sie mod_deflate (vermutlich schneller) verwenden. Platzieren Sie den folgenden Code am Anfang der Datei .htaccess (oder Sie können eine Liste .jpg hinzufügen | .gif | .png | Tiff | ICO):

  # Compress Elemente mit mod_deflate
 SetOutputFilter DEFLATE

10. Hinzufügen der Lebensdauer der Schlagzeilen

Dieser Code ermöglicht es Ihnen, eine Zeitleiste des Lebens in den Schlagzeilen hinzuzufügen:

  # Fügen Sie die Lebensdauer Schlagzeilen
 Kopfsatz Verfällt «Mi, 21. Mai 2010 20.00.00 GMT»

11. Legen Sie die Standardseite

Typischerweise ist die Standardseite index.html, aber diesen Code verwenden, können Sie die Standard andere Seite gesetzt.

	 # Legen Sie die Standard alternative Seite
	 Directory about.html 

12. Passwort geschützten Ordner und Dateien

Sie können Passwort-Authentifizierung für den Zugriff auf einen beliebigen Ordner oder eine Datei auf dem Server, mit diesem Code zu aktivieren:

  # Datei Passwortschutz
 AuthType Basic
 AuthName «Prompt»
 AuthUserFile /pub/home/.htpasswd
 Require valid-user
 # Passwort schützen Ordner
	 wohnt
	 AuthType Grund
	 AuthName «Dieses Verzeichnis wird geschützt»
	 AuthUserFile /pub/home/.htpasswd
	 AuthGroupFile / dev / null
	 Require valid-user 

Um mit einem Passwort Zugriff auf die Datei zur Verfügung zu stellen, müssen Sie eine .htpasswd - Datei erstellen und im Format Benutzer , um es ein paar Login und Passwort: Passwort.

Allerdings ist in diesem Fall werden die Passwörter im Klartext gespeichert, die nicht sehr gut in Bezug auf Sicherheit. Daher verschlüsselt die optimale Passwort. Um dies zu tun, die Dienste Datensätze verwenden zu generieren Htpasswd Dateien. Zum Beispiel wie folgt aus .

In diesem Beispiel ist die Passwort-Datei der Zugriff auf das Stammverzeichnis einer Website namens Htpasswd. Das Verzeichnis wird vom Server root angegeben, und wenn der Pfad nicht korrekt ist - der Apache, greifen nicht auf die Datei, verweigern den Zugriff auf alle Benutzer - Ordner - dass Chiles und derjenige, der die richtige Paar Login eingeführt: Passwort.

13. Umleiten von alten Domäne - neu

Mit .htaccess, können Sie eine Umleitung von der alten Domain auf die neue und fügte hinzu, den folgenden Code ein:

	 # Umleiten von alten Domäne old.com - neu
	 RewriteEngine On
	 RewriteRule ^ (. *) $ Http://www.new.com/$1 [R = 301, L] 

Umleitung wird verwendet, wenn Sie Ihre bestehende Website auf einen neuen Domain-Namen zu übertragen. In diesem Fall, die jeder Benutzer in der Adressleiste www.old.com wählt - wird auf www.new.com weitergeleitet.

14. Verbessert Caching

bedeuten diese Regel verwenden, nicht direkten Download zur Beschleunigung Ihrer Website. Es ist für eine schnellere Website Belastung ausgelegt - für ihn vorher den Besucher für diese Elemente durch Senden 304 Status besucht , die nicht aktualisiert wurden.

  # Stärkt Caching
 FileETag MTime Größe
 ExpiresActive auf
 ExpiresDefault «Zugang plus 1 Jahres»

Wenn Sie also die Seite neu laden den Browser des Besuchers wird nicht erneut herunterladen Bilder, Skripte und CSS, und zeigt die Dateien, die bereits in seinem Cache gespeichert sind. Sie können die Lebensdauer des Cache ändern, indem Sie seinen Wert in Jahren (Jahr) eingestellt wird, Monate (Monat) oder zum Beispiel - Sekunden (Sekunden). Beispiel Set 1 Jahr.

15. Compress Komponenten einschließlich gzip-Website

Durch die Verwendung von gzip, wird der Server - Dateien komprimieren , bevor sie an den Benutzer zu senden, das ist , warum Ihre Website schneller geladen wird.

	 # Compress Komponenten einschließlich gzip-Website
	 AddOutputFilterByType DEFLATE text / html text / plain ..
	 .. Text / xml application / xml application / xhtml + xml .. 
	 .. Text / javascript text / css application / x-javascript
	 Browser ^ Mozilla / 4 gzip-only-text / html
	 Browser ^ Mozilla / 4.0 [678] no-gzip
	 Browser bMSIE! No-gzip! Gzip-only-text / html 

Bitte beachten Sie, dass die Einbeziehung der Kompression in einer größeren Last auf dem Server-Prozessor führen. Es AddOutputFilterByType Linie wird in einer langen Zeile aufgezeichnet mit zwei unteren (alle .. muß entfernt werden).

16. Entfernen Sie die «Kategorie» in der URL

Um die Links auf yourdomain.com/category/blue yourdomain.com/blue ändern, fügen Sie einfach den folgenden Code am Ende Ihrer .htaccess - Datei.

	 # Löschen Sie die Kategorie aus der URL
	 RewriteRule ^ Kategorie /(.+)$ http://www.site.com/$1 [R = 301, L] 

Vergessen Sie nicht, www.site.com Namen auf Ihrer Domain zu ändern.

17. Sie sehen nicht den Inhalt eines Ordners

Um den Zugriff auf Verzeichnisse beschränken, die eine Vielzahl von Informationen enthalten und die Sicherheit des Servers, um sicherzustellen, fügen Sie diesen Code in der .htaccess-Datei

	 # Verweigert Sie den Inhalt eines Ordners
	 Optionen Alle -Indexes 

18. Leiten Sie Ihre RSS-Feed bei Feedburner

Wir werden zeigen, wie es am Beispiel von Drupal RSS-Band auf den Dienst Google Feedburner zu tun.

  # Redirect Drupal des RSS-Feeds zu Feedburner
 RewriteEngine on
 RewriteCond% {HTTP_USER_AGENT}! Feedburner [NC]
 RewriteCond% {HTTP_USER_AGENT}! Feed Validator [NC]
 RewriteRule ^ rss.xml $ http://feeds.feedburner.com/yourfeed [R = 302, NC, L]

Zunächst benötigen Sie einen Feed Ihres Blogs , wenn registrieren Feedburner . Dann vergessen Sie nicht zu ersetzen yourfeed auf Ihr Bandname bereits in Feedburner ist.

19. Verbieten Kommentare von Benutzern ohne Referer

Die häufigsten Spam - Bots beziehen sich direkt auf die Datei Kommentare, wie wp-comments-post.php, ohne auf die Aufnahmen Seite von Ihrem Blog gehen. Mit dem folgenden Code können Sie Kommentare von Benutzern gesendet zu blockieren, die gekommen sind "aus dem Nichts", so dass nur kommentieren die Leser, die zu einer Seite, auf Ihrem Blog mit anderen Seiten gewechselt haben (zum Beispiel Google Suchergebnisse).

	 # Verbieten Kommentare von Benutzern ohne Referer
	 RewriteEngine On
	 RewriteCond% {REQUEST_METHOD} POST
	 RewriteCond% {REQUEST_URI} .comment \ / antworten \ / *
	 RewriteCond% {HTTP_REFERER} !. * Yourblog.com. * [OR]
	 RewriteCond% {HTTP_USER_AGENT} ^ $
	 (. *) RewriteRule ^ http: //% {REMOTE_ADDR} / $ [R = 301, L] 

Vergessen Sie nicht, auf dem Domain-Namen Ihres Blogs zu ersetzen yourblog.com.

20. Entfernen Sie die Dateierweiterung aus der URL

Dieser Code ermöglicht es Ihnen, die .php-Dateierweiterung zu entfernen (Sie können es zu jedem anderen ändern kann, zum Beispiel - .html) aus der URL-Adresse der Seite.

	 #, Um die Dateierweiterung aus der URL entfernen
	 RewriteRule ^ (([^ /] + /) * [^.] +) $ /$1.php [L] 

21. Protect-Website

Dieser Code ermöglicht es Ihnen, die Website von unerwünschten Skripten enjection und _REQUEST Modifikationen und / oder GLOBALS zu schützen:

  # Schalten sim Tracking-Links
 Optionen + FollowSymLinks
 # Run url_rewriting
 RewriteEngine On
 # Blockieren Sie alle Links, um die <script> enthält
 RewriteCond% {QUERY_STRING} (\ <|% 3C) * Skript *. (\.> |% 3E) [NC, OR]
	 # Blockieren alle Skripte, die die Variablen PHP Globals zu ändern versuchen:
	 RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0,2}) [OR]
	 # Blockieren alle Skripte, die eine Variable _REQUEST zu ändern versuchen:
	 RewriteCond% {QUERY_STRING} _REQUEST (= | \ [| \% [0-9A-Z] {0,2})
	 Redirect # alle ähnlich wie die Seite mit Fehler 403 - Verboten
	 RewriteRule ^ (. *) $ Index.php [F, L] 

22. Umleitung Besucher RedirectMatch Richtlinie und mit regulären Ausdrücken

Eine weitere nützliche Richtlinie wird die Verwendung empfohlen - RedirectMatch. Zitat: "Diese Richtlinie ermöglicht eine angeforderte Adresse einen regulären Ausdruck zu verwenden (nicht zu senden" ein Dokument ", und" alle Dokumente, wie zum Beispiel ... "). Redirect Aussehen - der Browser wird darüber informiert, von der Notwendigkeit, eine andere Seite zu laden.

Syntax:

	 RedirectMatch [status] regexp URL 

Die Werte der Status (Return-Code des Web-Server) Standard:

permanent (301 - dauerhafte Umleitung), Temperatur (302 - temporäre Umleitung, wieder zu kommen), seeother (303 - zu fliegen, gibt es viele köstliche) gegangen (410 - weg für immer).

Beispiel:

Das gleiche Umleitung von der alten Domain auf die neue Verbindung ohne RewriteEngine:

	 RedirectMatch 301 ^ (. *) $ Www.domainname.com/$1 

Ich würde hinzufügen , dass Sie nicht nur http-Status verwenden können, aber auch andere Bedingungen:

	 RedirectMatch (. *) \ Gif $ http :. //www.myserver.com$1.png
	 RedirectMatch $ Http (* \ Jpg..): //www.myanother.com$1 

Achten Sie darauf, eine Sicherungskopie der .htaccess-Datei zu erstellen, bevor Sie Änderungen vornehmen und dann die gesamte Website testen - nach neuen Zeilen hinzufügen.

23. Schutz vor direkter Links zu Bildern via .htaccess

Hotlink (Hotlink) - legen Sie die Live - Bild - Links oder Dateien von einem Ort zum anderen. Diese Technik wird sehr oft verwendet wird, auch zum Beispiel auf dem Server genügend Platz nicht für Bilder haben und Sie nutzen jede freie Dienst zum Speichern von Bilddateien, das heißt, laden Bild, Sie erhalten die URL und in Ihre Website einfügen.

Das Ergebnis: Sie sparen Platz für Ihre Website und nutzen die Bandbreite für das Hosting von Bildern, aber das ist nicht deine Sache. Aber was, wenn jemand entschieden, dass Ihre Website kann als ähnlichen Dienst verwendet werden.

Wie kein Anbieter von kostenlosen Bilder und Dateien zu werden?

Gibt es einen Schutz von ihm? Ja, gibt es! Um zu verhindern , anderen Websites Ihren Traffic zu verwenden und / oder nur direkte Verknüpfungen mit Ihren Dateien (Bilder), dann fügen Sie die folgenden Zeilen in der .htaccess - Datei:

	 # Disable anderen Websites verwenden direkte Links zu Ihrer Bilder
	 RewriteCond% {HTTP_REFERER}! ^ $
	 # Dann wird die Liste der erlaubten Domains
	 RewriteCond% {HTTP_REFERER} ^ http (s):. (Www.) ?? // Sitename.ru * $ [NC]
	 RewriteCond% {HTTP_REFERER} ^ http (s): // (Www.) Sitename.ru:?. 80 * $ [NC]
	 # IP-Site (Domain)
	 RewriteCond% {HTTP_REFERER} ^ http (s):? //111.111.111.111.*$ [NC]
	 RewriteCond% {HTTP_REFERER} ^ http (s):? //111.111.111.111 :. 80 * $ [NC]
	 RewriteCond% {HTTP_REFERER} ^ http (s): (www.) ?? // Yandex.ru [NC]
	 RewriteCond% {HTTP_REFERER} ^ http (s): // (www.) Google ?.  [NC]
	 # RewriteCond% {HTTP_REFERER} ^ http (s): // (Www.) Domen_druzhestvennogo sayta.ru [NC]?
	 RewriteCond% {HTTP_REFERER}! Suche? Q = Cache [NC]
	 # Die Dateiformate, für die Schutz gesetzt
	 # Drucke Fehler 403
	 . # RewriteRule \ (Jpe g | bmp | gif | png | css | mov | swf | dcr | exe | rar | avi | vob | zip | pdf | txt | doc | flv | mp3 |? Mp4) $ - [NC, F, L]
	 # Oder anstelle der oben zeigt spetsrisunok
	 . RewriteRule * \ (jpe g |? Bmp | gif | png). $ Files / images / nohotlink.jpg [NC, L] 

Als Ergebnis werden alle anderen Seiten erhalten eine 403 Forbidden (dh Zugriff verweigert), und die Bandbreite ist mehr "für andere nicht funktioniert."

24. Imagecache und den Schutz vor Hotlinking durch .htaccess

Für Imagecache wird der vorherige Absatz nicht funktioniert, also fügen wir die folgenden Einstellungen:

  SetEnvIfNoCase Referer «^ $» local_ref = 1
 # Erlaubte Domains
 # Weiter akzeptierten Domänen
 SetEnvIfNoCase Referer «^ http // :? (www. \) Domäne \ .ru» local_ref = 1
 SetEnvIfNoCase Referer «^ http: // (www. \) Domäne \ .com» Local_ref = 1
 # Dateierweiterungen, die Sie schützen möchten
 # Dateierweiterungen, die Sie schützen möchten
 Lassen Sie Ordnung, Deny
 Zulassen von env = local_ref

Jetzt haben wir und Schutz vor Hotlinking und Imagecache Modul - zusammen sie perfekt funktionieren. One "aber" - so, wie Sie nicht ein anderes Bild zu geben, drehen kann; nur sein Bild zu schützen, die der Hauptzweck ist.