Designer & Entwicklerhandbuch Zu .htaccess
Unter den vielen verschiedenen Tools zur Anpassung Ihres Webservers ist die .htaccess-Konfigurationsdatei ein enormer Vorteil. Sie können Dokumenttypen, Parsing-Engines, URL-Weiterleitungen und viele andere wichtige Funktionen schnell zurücksetzen . Webmaster, die nicht sehr technisch sind, gehen vielleicht nicht auf die Besonderheiten der Verwaltung Ihrer eigenen .htaccess-Datei ein. Aber das Thema selbst ist faszinierend und eine Untersuchung wert.
Für diesen Artikel möchte ich einige der zweckdienlicheren Konzepte für Webmaster und Webentwickler vorstellen. Jeder, der seine eigene Website auf einem Apache-Server startet, wird definitiv wissen wollen, wie er seine .htaccess-Datei verwaltet. Es bietet so viel Anpassbarkeit und kann über alle Websprachen von PHP bis Ruby hinweg funktionieren .
Am Ende dieses Beitrags habe ich einige externe Webapps hinzugefügt, die Neulingen helfen, ihre .htaccess-Dateien dynamisch zu generieren .
Warum eine .htaccess-Datei verwenden?
Das ist eine gute Frage und vielleicht sollten wir mit der Antwort "Was ist eine .htaccess-Datei" beginnen? Es ist eine sehr spezielle Konfigurationsdatei, die vom Apache-Webserver verwendet wird. Eine .htaccess-Datei kann dem Webserver mitteilen, wie verschiedene Formen von Informationen dargestellt werden und wie verschiedene HTTP-Anforderungsheader gehandhabt werden.
Wirklich ist es ein Mittel der Dezentralisierung, um Webservereinstellungen zu organisieren. Ein physischer Server kann 50 verschiedene Websites mit jeweils einer eigenen .htaccess-Datei enthalten. Es verleiht Webmastern viel Macht, was sonst unmöglich wäre. Aber warum solltest du eins benutzen?
Der größte Grund ist Sicherheit. Sie können bestimmte Verzeichnisse sperren oder passwortgeschützt machen . Dies ist ideal für private Projekte oder neue Content Management Systeme, bei denen Sie ein wenig mehr Sicherheit wünschen. Aber es gibt auch häufige Aufgaben wie das Umleiten von 404 Fehlermeldungen auf eine bestimmte Webseite. Dies erfordert nur eine einzige Codezeile und kann die Reaktion der Besucher auf fehlende Seiten dramatisch beeinflussen.
Ehrlich gesagt kann ich nicht viel sagen, um andere davon zu überzeugen, dass eine .htaccess-Datei es wert ist, verstanden zu werden. Sobald Sie es in Aktion sehen, können Sie den gesamten Wert erkennen, der aus dieser kleinen Konfigurationsdatei kommt. Ich hoffe auch, dass der Rest dieses Artikels einige aufschlussreiche Themen vorstellen wird, die Webmaster in das Licht der Verwaltung einer .htaccess-Konfiguration bringen.
Zugriff erlauben / verweigern
Es ist möglich, potenzielle Spam-Besucher zu erkennen und ihnen den Zugriff auf Ihre Website zu verweigern. Dies kann ein wenig extrem sein, aber wenn Sie wissen, dass eine Person oder eine Gruppe von Menschen Ihre Website ausgerichtet haben, gibt es einige Optionen zur Auswahl. Sie können einen Domain-Verweis auswählen, um Besucher durch eine IP-Adresse zu sperren oder zu sperren.
order allow, deny deny von 255.0.0.0 deny von 123.45.6. von allen zulassen
Diese Beispielcodes wurden aus dem Htaccess-Handbuch kopiert, da sie die perfekte Vorlage für den Einstieg darstellen. Beachten Sie, dass in der 2. IP-Adresse die 4. Ganzzahl fehlt. Dieser Codeblock zielt auf die erste IP-Adresse (255.0.0.0) und jede IP-Adresse im Bereich von 123.45.6.0-255 ab und lässt dann den gesamten anderen Verkehr zu. Webmaster können dies nicht so häufig verwenden wie andere Techniken, aber es ist hilfreich zu verstehen.
Verzeichnisliste verhindern
Es wird Zeiten geben, in denen Sie ein offenes Verzeichnis haben, das so eingerichtet ist, dass es standardmäßig durchsucht werden kann. Dies bedeutet, dass Benutzer alle Dateien anzeigen können, die in einer internen Verzeichnisstruktur aufgeführt sind, z. B. in Ihrem Bilderordner. Einige Webmaster wollen Verzeichnislisten nicht zulassen und glücklicherweise ist das Code-Snippet ziemlich einfach zu merken.
Optionen -Indexe
Ich habe diese Antwort unzählige Male in Stack Overflow gesehen und es mag eine der einfachsten .htaccess-Regeln sein, an die man sich erinnern kann.
Es ist möglich , mehrere .htaccess-Dateien in jedem dieser Verzeichnisse zu erstellen, also ist einer von ihnen passwortgeschützt, die anderen nicht. Und Sie können weiterhin die Optionen -Indexe beibehalten, damit Besucher Ihre Website / images / Ordner nicht durchsuchen können.
Passwortschutz
Passwortschutz für Ihre Verzeichnisse ist ein sehr gängiges Verfahren zur Sicherung von Verwaltungsbereichen und anderen für Ihre Website wichtigen Ordnern . Manchmal möchten Sie nur Zugang zu einer kleinen Gruppe von Menschen bieten. Andere Male verhindern Passwörter, dass Hacker keinen Zugang zu Ihrem Website-Administrationsbereich erhalten. Aber so oder so ist es eine sehr mächtige Lösung für eine ganze Reihe von Problemen.
Es gibt einen praktischen Leitfaden zum Passwortschutz, der die wichtigen Code-Snippets umreißt. Sie müssen eine Passwortdatei erstellen, in der die Benutzernamen / Passwortdaten gespeichert sind . Auf diese Weise kann Apache überprüfen, was der Benutzer eingibt, um zu sehen, ob ihm Zugriff gewährt werden soll. Und beachten Sie, wie Sie ein Beispiel für Ihren Benutzernamen und Ihr Passwort generieren müssen.
Ich würde empfehlen, diesen htpassword Generator zu verwenden, also können Sie ein wenig Zeit sparen. Die Syntax wird immer perfekt und Sie müssen das Passwort nicht selbst verschlüsseln . Und die andere großartige Option ist der Passwortschutz für eine komplette Verzeichnisliste. Wir können dieses Beispiel in der CSS-Tricks Codeschnipsel-Galerie sehen.
AuthType Basic AuthName "Dieser Bereich ist passwortgeschützt" AuthUserFile /full/path/to/htpasswd Erfordert einen gültigen Benutzer
Sicherheit für WordPress
Um diese Idee des Passwortschutzes sinnvoll zu nutzen, zeigen wir ein Beispiel aus der Praxis. Dieses kompliziertere Code-Snippet erzwingt die Benutzerauthentifizierung für jeden, der auf die WordPress wp-login.php-Datei zugreift . Sie finden die Originalquelle auf Ask Apache, die zahlreiche andere WordPress-Schutzauszüge enthält.
Order Deny, Allow Deny von All Satisfy Any AuthName "Geschützt durch AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic Require gültig-Benutzer
Und wenn Sie diesen .htaccess-Regeln folgen, kann es auch helfen, den Admin-Bereich mit einem Passwort zu schützen. In der Regel wird die Datei wp-login.php die meisten Treffer von Leuten bekommen, die versuchen, sich ihren Weg in Ihr System zu bahnen . Selbst die obigen Beispielcodes wären mehr als genug zusätzliche Sicherheit für Ihre WordPress-Website.
HTTP URL Rewrite Regeln
Das Umschreiben von URLs ist wahrscheinlich eine der häufigsten Anwendungen für .htaccess-Dateien. WordPress-Standardinstallationen können eine .htaccess-Datei direkt aus dem Administrationsbereich generieren . Auf diese Weise können Sie hübsche URLs erstellen, die nicht die Struktur .php? P = 1 haben.
Ich möchte in diesem Umschreibungsbeispiel sehen, wie Unterstriche auf Bindestriche aktualisiert werden, da es viele der wichtigsten Elemente enthält .
Optionen + FolgenSymLinks RewriteEngine auf RewriteBase / RewriteRule! \. (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Ja] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Ja] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Ja] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Ja] RewriteCond% {ENV: uscor} ^ Ja $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
RewriteEngine und RewriteBase können immer genau auf diese Werte eingestellt werden. Aber Sie müssen die RewriteEngine eingeschaltet haben, damit alles andere funktioniert. Es gibt viele Online-Führer, die erklären, wie man mod_rewrite aktiviert und Ihr Hosting-Provider kann auch helfen.
Beachten Sie, dass die Syntax oben einem Muster von RewriteRules folgt. Diese Regeln werden verwendet, um Fälle zu vergleichen, die als HTTP-Anforderung gesendet werden . Diese werden von einer RewriteRule beantwortet, die in diesem Fall alles an die Domain d.com weiterleitet . Die Endklammern wie [R = 301, L] heißen Umschreibe-Flags, die wichtig sind, aber eher ein fortgeschrittenes Thema.
Die mod_rewrite-Syntax ist definitiv etwas verwirrend, aber lass dich nicht einschüchtern! Die Schnipsel können in anderen Beispielen viel einfacher aussehen.
Wenn ich gerade anfange, empfehle ich diese mod_rewrite Webapp, die Ihnen hilft, Code-Beispiele mit echten URLs zu generieren. Dies ist ein brillantes Werkzeug, da Sie verschiedene Elemente in der Syntax nachschlagen können, um zu sehen, was sie in den Regeln zum erneuten Schreiben tatsächlich tun. Hier ist ein weiteres großartiges Tutorial mit einem einfacheren Beispiel zum Studieren:
RewriteRule ^ dir / ([0-9] +) /? $ /index.php?id=$1 [L]
Versuchen Sie nicht, sich auf diese alle auf einmal zu überladen. Ich brauchte gut 3-4 Monate, um wirklich zu verstehen, wie man URLs mit [0-9a-zA-Z] + und ähnlichen Mustern umschreibt. Mach weiter und ich verspreche dir, dass du dieses Zeug bekommen wirst, als wäre es ein gesunder Menschenverstand.
Code-Snippets für Webmaster
Ich liebe einfach zu benutzende Snippets und möchte diese kleine Sammlung von relevanten .htaccess Codes für Webmaster zusammenstellen. Jede dieser Ideen kann zusammen mit anderen Code-Blöcken in Ihre eigene .htaccess-Datei passen. Die meisten dieser Snippets eignen sich hervorragend, um schnelle Probleme oder Korrekturen in Ihrer Webserverumgebung zu lösen . Stellen Sie sich das perfekte Apache-Setup für brandneue Webmaster vor, die gerade online gestartet werden.
Festlegen von DirectoryIndex
Der Befehl für DirectoryIndex wird häufig in einer einzelnen Zeile verwendet. Sie können Apache mitteilen, welche Dokumente anfänglich als "Haupt" -Dokument behandelt werden sollen. Standardmäßig werden Elemente wie index.html, index.php, index.asp und andere Indexdateien ausgewählt . Aber mit diesem Code-Snippet, das ich unten kopiert habe, haben Sie die Möglichkeit, dieses Root-Dokument nach Belieben zu erstellen.
Verzeichnisindex index.html index.cgi index.php
Die Reihenfolge der Dokumente sollte mit den wichtigsten anfangen und sich durch die Rangfolge zum unwichtigsten bewegen. Wenn wir also keine HTML- oder CGI-Datei haben, wird der Fallback in index.php gehen. Und Sie könnten sogar diese Dateien home.php oder someotherfile.php nennen und es ist alles gültige Syntax.
Force WWW oder Nicht-WWW-Subdomain
Google kann mit beiden Versionen Ihrer Website-Domain arbeiten, wenn Sie weder www.domain.com noch nur domain.com angeben . Nach meiner Erfahrung ist es die beste Vorgehensweise , eine dieser Optionen zu wählen und sie als einzige Option über .htaccess festzulegen. Dann indiziert Google verschiedene URLs nicht, wobei einige auf die WWW-Subdomain verweisen, andere hingegen nicht.
# Force WWW Subdomain RewriteEngine auf RewriteCond% {HTTP_HOST} ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Keine Subdomain RewriteEngine auf RewriteCond% {HTTP_HOST}! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Dieses Code-Snippet stammt aus einem CSS-Trick-Archiv und bietet eine sehr praktische Lösung. Sie sollten die Domain so aktualisieren, dass sie für Ihre eigene Website benötigt wird. Sonst wird es Probleme geben und Sie werden es sofort merken! Aber ich unterstütze sehr stark eine dieser beiden Optionen und steht nach dem Start einer neuen Website ganz oben auf meiner Aufgabenliste.
Erzwinge Downloads von Mediendateien
Ein weiterer, ziemlich wichtiger Ausschnitt erlaubt es, bestimmte Medientypen zum Herunterladen zu zwingen, anstatt sie im Browser anzuzeigen . Sofort kann ich an PDF-Dokumente und MP3-Audiodateien denken, die in einem herunterladbaren Format präsentiert werden können, aber wie stellen Sie sicher, dass sie herunterladbar sind ? Ich habe einen ähnlichen Artikel im Htaccess Guide gefunden, in dem dieses Code-Snippet beschrieben wird.
AddType-Anwendung / octet-stream .zip .mp3 .mp4
Fühlen Sie sich frei, noch mehr Dateitypen am Ende dieser Zeile hinzuzufügen. Alle Medienformate, die den Octet-Stream-MIME-Typ verwenden, können heruntergeladen werden. Das Durchschalten von .htaccess ist eine sehr direkte Methode, um sicherzustellen, dass Benutzer diese Dateien nicht im Browser anzeigen können.
Benutzerdefinierte Fehlerdokumente
Ein letztes letztes Stück, das ich hinzufügen möchte, ist eine vollständige Vorlage von benutzerdefinierten Fehlerdokumenten. Normalerweise werden diese Nummerncodes nur auf dem Server angezeigt. Aber es gibt viele dieser Fehlerdokumente, mit denen Sie vertraut sein sollten. Ein paar Beispiele könnten 403/404 Fehler und die 301 Redirect sein .
Diese Fehlercodevorlage beginnt bei 100 und bewegt sich nach oben in 500 Fehler . Bitte beachten Sie, dass Sie offensichtlich nicht alle benötigen. Nur die häufigsten Fehler wären notwendig, und möglicherweise ein paar obskure Schnipsel, wenn Sie das Bedürfnis haben.
Wenn Sie einen Code nicht erkennen, suchen Sie einfach in Wikipedia nach, um ein besseres Verständnis zu erhalten.
Errordocument 100 / 100_CONTINUE Errordocument 101 / 101_SWITCHING_PROTOCOLS Errordocument 102 / 102_PROCESSING Errordocument 200 / 200_OK Errordocument 201 / 201_CREATED Errordocument 202 / 202_ACCEPTED Errordocument 203 / 203_NON_AUTHORITATIVE Errordocument 204 / 204_NO_CONTENT Errordocument 205 / 205_RESET_CONTENT Errordocument 206 / 206_PARTIAL_CONTENT Errordocument 207 / 207_MULTI_STATUS Errordocument 300 / 300_MULTIPLE_CHOICES Errordocument 301 / 301_MOVED_PERMANENTLY Errordocument 302 / 302_MOVED_TEMPORARILY Errordocument 303 / 303_SEE_OTHER Errordocument 304 / 304_NOT_MODIFIED Errordocument 305 / 305_USE_PROXY Errordocument 307 / 307_TEMPORARY_REDIRECT Errordocument 400 / 400_BAD_REQUEST Errordocument 401 / 401_UNAUTHORIZED Errordocument 402 / 402_PAYMENT_REQUIRED Errordocument 403 / 403_FORBIDDEN Errordocument 404 / 404_NOT_FOUND Errordocument 405 / 405_METHOD_NOT_ALLOWED Errordocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT Errordocument 409 / 409_CONFLICT Errordocument 410 / 410_GONE Errordocument 411 / 411_LENGTH_REQUIRED Errordocument 412 / 412_PRECONDITION_FAILED Errordocument 413 / 413_REQUEST_ENTITY_TOO_LARGE Errordocument 414 / 414_REQUEST_URI_TOO_LARGE Errordocument 415 / 415_UNSUPPORTED_MEDIA_TYPE Errordocument 416 / 416_RANGE_NOT_SATISFIABLE Errordocument 417 / 417_EXPECTATION_FAILED Errordocument 422 / 422_UNPROCESSABLE_ENTITY Errordocument 423 / 423_LOCKED Errordocument 424 / 424_FAILED_DEPENDENCY Errordocument 426 / 426_UPGRADE_REQUIRED Errordocument 500 / 500_INTERNAL_SERVER_ERROR Errordocument 501 / 501_NOT_IMPLEMENTED Errordocument 502 / 502_BAD_GATEWAY Errordocument 503 / 503_SERVICE_UNAVAILABLE Errordocument 504 / 504_GATEWAY_TIME_OUT Errordocument 505/506 505_VERSION_NOT_SUPPORTED Errordocument / 506_VARIANT_ALSO_VARIES Errordocument 507 / 507_INSUFFICIENT_STORAGE Errordocument 510 / 510_NOT_EXTENDED
Online .htaccess Webapps
- Htaccess Builder
- .htaccess Weiterleitungsgenerator
- .htaccessEditor - Erstelle eine .htaccess Datei
- Mod Rewrite Generator von GenerateIt.net
- DevGizmo htaccess Builder
Andere nützliche Ressourcen
- .htaccess in Httpd Wiki
- Offizielle Apache htaccess-Dokumentation
- Fragen Sie Apache Blog - Htaccess Archives
- Ultimativer Leitfaden für htaccess und mod_rewrite
- Alles, was Sie jemals über Mod_Rewrite-Regeln wissen wollten, aber nicht zu fragen wagten
Abschließende Gedanken
Es gibt so viele unzählige Ressourcen online zu diskutieren. Htaccess-Dateien. Meine verlinkten Artikel und Webapps sind ein großartiger Ort, um loszulegen. Aber üben Sie immer neue Ideen und haben Sie keine Angst , Codeschnipsel auszuprobieren . Solange Sie eine Backup-Datei haben, können Sie alles testen, was Sie wollen, und es ist eine lustige Lernerfahrung.
Wenn Sie weitere Ideen oder Vorschläge zum .htaccess-Management haben, teilen Sie uns diese bitte im folgenden Diskussionsbereich mit.
JUMP Cable: Ein intelligentes Ladekabel, das gleichzeitig als Batterie dient
Einer der größten Nachteile von Smartphones ist ihre Akkulaufzeit. Das ist das einzige Hindernis für ständige Konnektivität, und während die vielen schweren Batteriegehäuse und sperrigen Powerbanks Ihnen helfen können, Ihr Smartphone mit Strom zu versorgen, gibt es manchmal mehr Kopfschmerzen (denken Sie daran, dass sie separat aufgeladen werden müssen), als wenn Sie Ihr Smartphone behalten in Betrieb.Wenn Sie
100 exquisite Flugzeugfensteraufnahmen
Reisen im Flugzeug verblüfft mich immer wieder. Gut, wenn ich es schaffen würde, am Fenster Platz zu nehmen. Warum? Ich kann alle möglichen Landschaften sehen, während das Flugzeug abhebt, stundenlang über dem Rest der Welt kreuzt und ich glaube immer, dass es immer etwas Schönes am Fenster gibt, das darauf wartet, entdeckt zu werden. Es k