25 .htaccess Regeln, die jeder sollte Web-Entwickler wissen
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-DateiUm 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_deflateSetOutputFilter 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 SchlagzeilenKopfsatz 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 PasswortschutzAuthType 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ößeExpiresActive 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 FeedburnerRewriteEngine 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öchtenLassen 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.
25. Nicht nur das?
- Enzyklopädie auf .htaccess in russischer Sprache ;
- .htaccess Offizielle Tutorial der Apache ;
- 12 Weitere nützliche Tricks .htaccess ;
- Praktische Lösungen für den Einsatz von .htaccess - Datei ;
- Leitfaden für .htaccess Comprehensive ;
- Starter Guide für .htaccess - Dateien ;
- Der Versuch , einige Male ein fast perfektes .htaccess zu schaffen .
Kommentare
im Auge kommentierte halten , dass der Inhalt und der Ton Ihrer Nachrichten , die Gefühle von echten Menschen verletzen können, Respekt und Toleranz gegenüber seinen Gesprächspartnern, auch wenn Sie Ihr Verhalten in Bezug auf die Meinungsfreiheit und die Anonymität des Internets, ändert ihre Meinung nicht teilen, nicht nur virtuell, sondern realen Welt. Alle Kommentare werden aus dem Index, Spam - Kontrolle versteckt.