Startseite » Codierung » Ein Anfängerleitfaden für .htaccess für Designer und Entwickler

    Ein Anfängerleitfaden für .htaccess für Designer und Entwickler

    Unter den vielen verschiedenen Tools zum Anpassen Ihres Webservers ist die .htaccess-Konfigurationsdatei eine enorme Bereicherung. Sie können Zurücksetzen von Dokumenttypen, Parsing-Engines und URL-Weiterleitungen, und viele andere entscheidende Funktionen. Webmaster, die nicht sehr technisch sind, werden möglicherweise nicht in die Besonderheiten der Verwaltung Ihrer eigenen .htaccess-Datei einbezogen. Aber das Thema selbst ist faszinierend und eine Untersuchung wert.

    In diesem Artikel möchte ich einige der zielgerichteteren Konzepte für Webmaster und Webentwickler vorstellen. Jeder, der ist Starten einer eigenen Website auf einem Apache-Server möchte auf jeden Fall verstehen, wie sie ihre .htaccess-Datei verwalten. Es bietet so viel Anpassungsfähigkeit und es kann in allen Web-Sprachen arbeiten von PHP bis Ruby.

    Am Ende dieses Beitrags habe ich einige externe Webapps hinzugefügt helfen Neuankömmlingen, ihre .htaccess-Dateien dynamisch zu generieren.

    Warum eine .htaccess-Datei verwenden??

    Dies ist eine großartige Frage und vielleicht sollten wir mit einer Antwort beginnen “Was ist eine .htaccess-Datei”? Dies ist eine sehr spezielle Konfigurationsdatei, die vom Apache-Webserver verwendet wird. Eine .htaccess-Datei kann dem Webserver mitteilen wie verschiedene Informationen dargestellt und verschiedene HTTP-Anforderungsheader behandelt werden.

    Wirklich ist es ein Mittel von Dezentralisierung Webserver-Einstellungen organisieren. Ein physischer Server kann 50 verschiedene Websites mit jeweils eigener .htaccess-Datei verwalten. Es gibt Webmastern viel Macht, was sonst unmöglich wäre. Aber warum sollten Sie eins verwenden?

    Der größte Grund ist die Sicherheit. Sie können sperren Sie bestimmte Verzeichnisse oder machen Sie sie passwortgeschützt. Dies ist ideal für private Projekte oder neue Content-Management-Systeme, bei denen Sie zusätzliche Sicherheit wünschen. Es gibt jedoch auch allgemeine Aufgaben wie das Umleiten von 404-Fehlermeldungen auf eine bestimmte Webseite. Dies erfordert nur eine einzige Codezeile und es kann sich dramatisch auf die Reaktion der Besucher auf fehlende Seiten auswirken.

    Um ehrlich zu sein, kann ich nicht viel sagen, um andere davon zu überzeugen, dass eine .htaccess-Datei verständlich ist. Wenn Sie es in Aktion sehen, können Sie alle Werte erkennen, die aus dieser kleinen Konfigurationsdatei stammen. Ich hoffe auch, dass der Rest dieses Artikels einige aufschlussreiche Themen enthält, mit denen Webmaster auf das Management einer .htaccess-Konfiguration aufmerksam gemacht werden können.

    Zugriff zulassen / 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. Wenn Sie jedoch wissen, dass eine Person oder eine Gruppe von Personen Ihre Website als Ziel ausgewählt hat, stehen Ihnen einige Optionen zur Auswahl. Sie können einen Domain-Verweis auswählen, um Besucher über eine IP-Adresse abzulehnen oder zu verbieten.

    Um zu erlauben, verweigern verweigern von 255.0.0.0 verweigern von 123.45.6. von allen zulassen 

    Diese Beispielcodes wurden aus dem Htaccess-Handbuch kopiert, da sie die perfekte Vorlage für den Einstieg sind. Beachten Sie, dass bei der 2. IP-Adresse die 4. Ganzzahl fehlt. Dieser Codeblock richtet sich an die erste IP (255.0.0.0) und jede IP im Bereich von 123.45.6.0-255, Erlaube dann allen anderen Verkehr. Webmaster verwenden dies möglicherweise nicht so häufig wie andere Techniken, aber es ist hilfreich zu verstehen.

    Verzeichnisauflistung verhindern

    Es gibt Zeiten, in denen Sie ein offenes Verzeichnis haben Richten Sie das Durchsuchen standardmäßig ein. Dies bedeutet, dass Benutzer alle Dateien anzeigen können, die in einer internen Verzeichnisstruktur aufgeführt sind, beispielsweise Ihr Bilderordner. Einige Webmaster möchten keine Verzeichnisauflistung zulassen, und dankenswerterweise ist das Code-Snippet relativ einfach zu merken.

    Optionen -Indexes 

    Ich habe gesehen, dass diese Antwort im Stack Overflow unzählige Male dargestellt wurde, und es könnte eine der einfachsten .htaccess-Regeln sein, an die man sich erinnert.

    Es ist tatsächlich möglich Erstellen Sie mehrere .htaccess-Dateien in jedem dieser Verzeichnisse Vielleicht ist einer von ihnen durch ein Passwort geschützt, die anderen jedoch nicht. Und du kannst das immer noch behalten Optionen -Indexes So können Besucher Ihre Website / Bilder / Ordner nicht durchsuchen.

    Passwortschutz

    Ihre Verzeichnisse mit einem Kennwort zu schützen, ist ein sehr übliches Verfahren für Sichern von Verwaltungsbereichen und anderen für Ihre Website wichtigen Ordnern. Manchmal möchten Sie nur einer kleinen Gruppe Zugang bieten. Andere Kennwörter dienen dazu, zu verhindern, dass Hacker in Ihr Website-Verwaltungsfenster gelangen. Auf jeden Fall ist es eine sehr effektive Lösung für eine ganze Reihe von Problemen.

    Es gibt eine praktische Anleitung zum Passwortschutz, die die wichtigsten Codeausschnitte beschreibt. Du wirst brauchen Erstellen Sie eine Kennwortdatei, in der die Anmeldeinformationen für Benutzername und Kennwort gespeichert werden. Auf diese Weise kann Apache anhand der Eingaben des Benutzers prüfen, ob er Zugriff erhalten soll. Beachten Sie, wie Sie ein Muster für Ihren Benutzernamen und Ihr Kennwort erstellen müssen.

    Ich würde empfehlen, diesen htpassword-Generator zu verwenden, damit Sie etwas Zeit sparen können. Die Syntax wird immer perfekt sein und Sie müssen das Kennwort nicht selbst verschlüsseln. Eine weitere gute Möglichkeit ist, eine vollständige Verzeichnisliste mit einem Kennwort zu schützen. Wir können dieses Beispiel in der CSS-Tricks-Codeausschnitt-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 Kennwortschutzes zu nutzen, zeigen wir ein reales Beispiel. Dieses kompliziertere Code-Snippet wird dies tun Benutzerauthentifizierung für alle Benutzer erzwingen, die auf die WordPress-Datei "wp-login.php" zugreifen. Die Originalquelle finden Sie auf Ask Apache, das zahlreiche weitere WordPress-Schutz-Snippets enthält.

     Bestellen Sie Ablehnen, Erlauben Sie Ablehnen von allen Befriedigen Sie jeden AuthName "Protected By AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic Erfordert einen gültigen Benutzer  

    Wenn Sie diese .htaccess-Regeln befolgen, kann dies auch dazu beitragen, den Admin-Bereich durch ein Kennwort zu schützen. Normalerweise die wp-login.php Die Datei wird die meisten Treffer von Leuten erhalten, die versuchen, sich brutal in Ihr System zu drängen. Also auch nur die Beispielcodes oben wären mehr als genug zusätzliche Sicherheit für Ihre WordPress-Website.

    Regeln zum Überschreiben von HTTP-URLs

    Das Umschreiben von URLs ist wahrscheinlich eine der häufigsten Anwendungen für .htaccess-Dateien. WordPress-Standardinstallationen können eigentlich Erstellen Sie eine .htaccess-Datei direkt im Administrationsbereich. Dadurch können Sie hübsche URLs erstellen, die nicht die Struktur .php? P = 1 haben.

    Ich möchte mir dieses Beispiel zum Umschreiben ansehen Aktualisieren von Unterstrichen in Bindestrichen seit es enthält viele der wichtigsten Elemente.

    Optionen + FollowSymLinks RewriteEngine On RewriteBase / RewriteRule! \. (Html ​​| php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = Benutzer: Ja] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Ja] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Yes] RewriteCond% ENV: uscor ^ Ja $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L] 

    RewriteEngine und RewriteBase können meist immer auf diese exakten Werte eingestellt werden. Sie müssen jedoch die RewriteEngine aktivieren, damit alles andere funktioniert. Es gibt zahlreiche Online-Handbücher, in denen erklärt wird, wie Sie mod_rewrite aktivieren. Ihr Hosting-Provider kann auch helfen.

    Beachten Sie, dass die Syntax einem Muster von folgt RewriteRules oben. Diese Regeln werden verwendet Übereinstimmung mit Fällen, die als HTTP-Anforderung gesendet werden. Diese werden von einer RewriteRule beantwortet, die in diesem Fall alles zur Domäne umleitet d.com. Die abschließenden Klammern wie [R = 301, L] werden Umschreibungsflags genannt, die wichtig sind, jedoch eher ein fortgeschrittenes Thema.

    Die mod_rewrite-Syntax ist definitiv etwas verwirrend, aber lassen Sie sich nicht einschüchtern! Die Ausschnitte können in anderen Beispielen viel einfacher aussehen.

    Wenn ich gerade erst anfange, muss ich diese mod_rewrite webapp empfehlen, mit der Sie Codebeispiele unter Verwendung realer URLs erstellen können. Dies ist ein brillantes Werkzeug, da Sie verschiedene Elemente in der Syntax nachschlagen können, um zu sehen, was sie in den Rewrite-Regeln tatsächlich tun. Hier ist ein weiteres großartiges Tutorial mit einem einfacheren Beispiel:

    RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L] 

    Versuchen Sie nicht, sich auf einmal auf diese Weise zu überlasten. Ich habe gut über 3-4 Monate gebraucht, um wirklich zu verstehen, wie man URLs mit [0-9a-zA-Z] + und ähnlichen Mustern umschreibt. Übe weiter und mit der Zeit verspreche ich dir, dass du so etwas wie normales Wissen bekommst.

    Code-Snippets für Webmaster

    Ich liebe einfach zu bedienende Snippets und möchte diese kleine Sammlung relevanter .htaccess-Codes für Webmaster zusammenstellen. Jede dieser Ideen kann zusammen mit anderen Codeblöcken gut in Ihre eigene .htaccess-Datei passen. Die meisten dieser Ausschnitte eignen sich hervorragend für Behebung schneller Probleme oder Korrekturen in Ihrer Webserver-Umgebung. Stellen Sie sich das perfekte Apache-Setup für brandneue Webmaster vor, die gerade online gehen.

    DirectoryIndex einstellen

    Der Befehl für DirectoryIndex wird üblicherweise in einer einzelnen Zeile verwendet. Sie können Apache mitteilen, welche Dokumente zunächst als behandelt werden sollen “Main” dokumentieren. Standardmäßig wird dies angezeigt Zielelemente wie index.html, index.php, index.asp und andere Indexdateien. Wenn Sie jedoch dieses Code-Snippet verwenden, das ich unten kopiert habe, können Sie dieses Stammdokument beliebig gestalten.

    DirectoryIndex index.html index.cgi index.php 

    Die Reihenfolge der Dokumente sollte mit den wichtigsten beginnen und durch die Ränge bis hin zu den unwichtigsten gehen. Wenn wir also keine HTML- oder CGI-Datei haben, wird der Fallback aufgerufen index.php. Und Sie könnten diese Dateien sogar benennen home.php oder someotherfile.php und es ist alles gültige Syntax.

    WWW- oder Nicht-WWW-Unterdomäne erzwingen

    Google kann mit beiden Versionen Ihrer Website-Domain arbeiten, wenn Sie dies nicht angeben www.domain.com oder nur domain.com. Meiner Erfahrung nach ist es die beste Praxis Wählen Sie eine davon aus und legen Sie sie als einzige Wahl fest via .htaccess. Dann indiziert Google keine verschiedenen URLs, von denen einige auf die WWW-Unterdomäne verweisen, während andere dies nicht tun.

    # WWW-Subdomain RewriteEngine On RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Keine Subdomain RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301] 

    Dieses Code-Snippet stammt aus einem CSS-Tricks-Archiv und bietet eine sehr praktische Lösung. Sie sollten die Domain so aktualisieren, wie Sie sie für Ihre eigene Website benötigen. Ansonsten gibt es Probleme und Sie werden es sofort bemerken! Ich unterstütze jedoch nachdrücklich, eine dieser beiden Optionen zu erzwingen, und sie steht nach dem Start einer neuen Website ganz oben auf meiner Aufgabenliste.

    Mediendateidownloads erzwingen

    Ein weiteres ziemlich wichtiges Snippet ermöglicht das Erzwingen bestimmter Medientypen Download statt im Browser angezeigt zu werden. Ich kann sofort an PDF-Dokumente und MP3-Audiodateien denken, die in einem herunterladbaren Format dargestellt werden können, aber wie geht das? Stellen Sie sicher, dass sie heruntergeladen werden können? Ich habe einen ähnlichen Artikel im Htaccess Guide gefunden, der dieses Code-Snippet beschreibt.

    AddType Anwendung / Octet-Stream .zip .mp3 .mp4 

    Fühlen Sie sich frei, noch mehr Dateitypen am Ende dieser Zeile einzufügen. Alle Medienformate, die den Octet-Stream-MIME-Typ verwenden, können heruntergeladen werden. Dies durch .htaccess zu erzwingen, ist ein sehr direkter Weg, um sicherzustellen, dass die 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 sind diese Nummerncodes nur auf der Serverseite sichtbar. Es gibt jedoch viele dieser Fehlerdokumente, mit denen Sie vertraut sein sollten. Einige Beispiele könnten sein 403/404 Fehler und das 301 Weiterleitung.

    Diese Fehlercode-Vorlage Beginnt bei 100 und geht in 500 Fehler aufwärts. Bitte beachten Sie, dass Sie offensichtlich nicht alle davon benötigen. Es wären nur die häufigsten Fehler erforderlich, und möglicherweise ein paar obskure Ausschnitte, wenn Sie das Bedürfnis verspüren.

    Wenn Sie einen Code nicht erkennen, schauen Sie 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-Umleitungsgenerator
    • .htaccessEditor - Erstellt eine .htaccess-Datei
    • Mod Rewrite Generator von GenerateIt.net
    Andere nützliche Ressourcen
    • .htaccess in Httpd Wiki
    • Offizielle Apache htaccess-Dokumentation
    • Fragen Sie den Apache Blog - Htaccess Archives
    • Ultimate Guide für htaccess und mod_rewrite
    • Alles, was Sie schon immer über Mod_Rewrite-Regeln wissen wollten, hatten jedoch Angst zu fragen

    Abschließende Gedanken

    Es gibt so viele unzählige Online-Ressourcen, die .htaccess-Dateien diskutieren. Meine verlinkten Artikel und Webapps sind ein großartiger Einstieg. Aber üben Sie immer neue Ideen und haben Sie keine Angst Codeausschnitte testen. So lange wie Sie haben eine Sicherungsdatei Dann können Sie alles ausprobieren, was Sie möchten, und es macht Spaß, es zu lernen.

    Wenn Sie andere Ideen oder Vorschläge zum .htaccess-Management haben, teilen Sie uns dies bitte im Post-Diskussionsbereich mit.