This page has been robot translated, sorry for typos if any. Original content here.

Anleitung zu .htaccess und mod_rewrite

Nach Thema:


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


Kurzanleitung für htaccess und mod_rewrite

Die Verwendung von Apache "Chips" mod_rewrite und htaccess wird als etwas unerreichbar unter den vielen enttäuschten Webmastern betrachtet, aber dies ist eine der schwierigsten Aufgaben, die fast alle Webentwickler treffen.

Ich möchte Ihnen eine einfache Lösung anbieten, anstatt nach komplexeren zu suchen, um zu verstehen, wie mod_rewrite und htaccess funktionieren . Die meisten der in diesem Artikel beschriebenen Anwendungsbeispiele können einfach kopiert und auf Ihren Webserver hochgeladen werden.

Um das nicht mit hunderten anderen Webmastern zu wiederholen, entschied ich mich, diesen Seitentipp nur für den allgemeinen Gebrauch zu erstellen.

Auch hier ist htaccess eine Konfigurationsdatei, mit der Sie den Apache-Webserver verwalten können. Mod_rewrite ist eine Neuschreibmaschine, mit der der Webserver die URLs beim Herunterladen ändern kann.

Die Datei htaccess ist eine Textdatei mit dem Namen .htaccess . Man kann sogar sagen, dass dies eine Datei ist, die nur aus einer Erweiterung besteht, weil sie nicht den nominalen Teil enthält (vor dem "Punkt" -Symbol). Normalerweise befindet sich diese Datei im Hauptstammverzeichnis Ihres Servers, Sie können jedoch auch separate htaccess- Dateien für verschiedene Verzeichnisse auf Ihrer Site erstellen.

Kanonisierung

Das einfachste Beispiel besteht darin, sicherzustellen, dass die Site keine kanonischen Fehler für die Homepage enthält.

Viele Webmaster leiden unter einem nicht sehr guten Ranking in den Suchmaschinen, da es mehrere Versionen der URL der Homepage gibt, zum Beispiel:

  http://www.site.com 
http://site.com
http://www.site.com/index.html
http://site.com/index.html

Diese Seiten sehen wie verschiedene URLs aus, obwohl sie auf denselben Inhalt verweisen. Google wird letztendlich entscheiden, welche Version korrekter ist, aber es kann eine Weile dauern, und während dieser Zeit können Sie unnötige Probleme haben.

Um dieses Problem zu lösen, fügen Sie einfach die folgenden Zeilen zu Ihrer htaccess-Datei hinzu:

  Optionen + FolgenSymLinks 
RewriteEngine an
RewriteCond% {HTTP_HOST} ^ site.com
RewriteRule (. *) Http://www.site.com/$1 [R = 301, L]
RewriteCond% {THE_REQUEST} ^ [AZ] {3,9} \ / index \ .html \ HTTP /
RewriteRule ^ index \ .html $ http://www.site.com/ [R = 301, L]

Mit diesem Code können Sie alle möglichen Optionen für die Startseite auf http://www.site.com umleiten.

Konvertieren von HTML-Dateien in PHP

Manchmal müssen Sie PHP-Code auf den HTML-Seiten einer statischen Site verwenden. Anstatt alle Ihre HTML-Seiten auf die entsprechenden PHP-Versionen umzuleiten, müssen Sie Ihrem Server nur sagen, dass er HTML-Dateien als PHP analysieren soll.

  AddHandler-Anwendung / x-httpd-php .html 

Dieser Code funktioniert mit allen Dateien. Wenn Sie also dynamische XML- oder ASP-Dateien erstellen möchten, die sich wie PHP-Dateien verhalten, müssen Sie nur die folgenden Änderungen vornehmen:

  AddHandler-Anwendung / x-httpd-php .xml 
AddHandler-Anwendung / x-httpd-php .asp

Fehlerseiten

Benutzerdefinierte Fehlerseiten können einfach angepasst werden, zum Beispiel in CPanel (oder DirectAdmin), aber wenn Sie die Fehlerseite über eine htaccess-Datei konfigurieren möchten, fügen Sie die folgende Zeile hinzu:

  # Fehlerbehandlung 404 - Datei nicht gefunden 
ErrorDocument 404 http://www.site.com/404.php
# Fehlerbehandlung 403 - Zugriff verweigert
ErrorDocument 403 http://www.site.com/403.php

Indizierung von Verzeichnissen

Um zu verhindern, dass Google Verzeichnisse indexiert , müssen Sie eine Indexseite für die erforderlichen Verzeichnisse definieren. Dies ist auf einigen Servern nicht erforderlich.

  Verzeichnisindex index.php3 

Ich ziehe es vor, auf die Verzeichnisindexseite oder eine andere geeignete Seite umzuleiten. Zum Beispiel kann www.site.com/images/ zu www.site.com umgeleitet werden, und www.site.com/forum/ kann zu www.site.com/forum/index.php umgeleitet werden

Seiten umleiten

Ein großartiges Beispiel für die Verwendung von htaccess zum Umleiten einer Seite an eine andere:

  Redirect 301 /old-page.php http://www.site.com/new-page.php 

Umleitung Ihres Feeds zu Feedburner

Wenn Sie Ihren Feed zum Feedburner-Dienst wechseln möchten, müssen Sie Ihren aktuellen Feed an die neue Adresse http://feeds.feedburner.com/blog-feed umleiten.

Die Umleitung sollte auf alle Besucher mit Ausnahme von Feedburner angewendet werden:

  RewriteCond% {HTTP_USER_AGENT}! FeedBurner 
RewriteRule ^ dein-feed \ .xml $ http://feeds.feedburner.com/blog-feed [R, L]

Verbesserter Hotlink-Schutz

Wenn Sie verhindern möchten, dass andere Websites Bilder direkt auf Ihrer Website referenzieren, Sie jedoch die Google-Suchmaschinen Google, Yahoo und MSN indizieren können, müssen Sie den folgenden Code verwenden:

  RewriteEngine an 
RewriteCond% {HTTP_REFERER}.
RewriteCond% {HTTP_REFERER}! ^ Http: // ([^.] + \.)? Site \. [NC]
RewriteCond% {HTTP_REFERER}! Google \. [NC]
RewriteCond% {HTTP_REFERER}! Suche \? Q = Cache [NC]
RewriteCond% {HTTP_REFERER}! Msn \. [NC]
RewriteCond% {HTTP_REFERER}! Yahoo \. [NC]
RewriteCond% {REQUEST_URI}! ^ / Hotlinker \ .gif $
RewriteRule \. (Gif | jpg | png) $ /hotlinker.gif [NC, L]

Image hotlinker.gif ist ein Bild, das Sie erstellt haben. Ich schlage vor, etwas wie "Dieses Bild ist auf www.site.com" und Ihr Logo zu verwenden.

Persönlich erlaube ich Hotlinks, aber ich verwende eine bestimmte Lösung, die den Google Bilder-Service und Hotlink-Sites verwendet, um Links zu meiner Website zu erhalten .

Erstellen von CNC-Verknüpfungen mit mod_rewrite

Das Apache-Rewrite-Modul wird hauptsächlich verwendet, um dynamische URLs der Form www.site.com/product.php?id=123 in statische und benutzerfreundliche Ansichten von www.site.com/product/123 umzuwandeln.

  RewriteEngine an 
RewriteRule ^ Produkt /([^/\.]+)/?$ Produkt.php? Id = $ 1 [L]

Ein weiteres Beispiel, das die URL führt: www.yoursite.com/script.php?product=123 zum Formular www.yoursite.com/cat/product/123/

  RewriteRule cat /(.*)/(.*)/$ /script.php?$1=$2 

Löschen von Abfragezeichenfolgen

Einige Websites stellen eine Verbindung zu Ihnen her, indem Sie eine Abfragezeichenfolge hinzufügen. Zum Beispiel können Sie über diesen Link http://www.site.com/index.php?source=seoblog auf Ihre Website verweisen, um zu wissen, woher der Traffic stammt. Dies führt dazu, dass der doppelte Inhalt für Ihre Website angezeigt wird. Daher müssen Sie die Umleitung zu Ihrer Homepage konfigurieren:

  RewriteCond% {QUERY_STRING} ^ source = RewriteRule (. *) / $ 1?  [R = 301, L] 

Das ist alles für jetzt. Wenn es was gibt, was ich hinzufügen möchte, frage ich im ...

Die meisten Hostings haben zwei oder mehr Versionen von PHP installiert. Normalerweise ist der vierte der Standardwert. Damit Ihre PHP-Skripte jedoch in Version 5 verarbeitet werden, können Sie sich in htaccess registrieren:

  AddType-Anwendung / x-httpd-php5 .php 

Oder Sie können jeder Datei eine .php5-Erweiterung hinzufügen, anstatt nur .php.
Dies ist für den Fall, dass Sie zu faul sind, htaccess zu redigieren.






Beispiele zum Konfigurieren der .htaccess-Datei

Während einige unserer mutigen seo "Gurus" fremde Artikel übersetzen, ohne einen Link zum Originalartikel zu installieren, gebe ich Ihnen eine Auswahl an Codes für die Konfiguration von .htaccess.

Fast alle Artikel sind erforderlich, außer

  • Weiterleitungen und Sperren - sie werden nach Bedarf konfiguriert
  • sowie die Einstellungen der CNC (Human FunLink) - in der Regel können Sie CMS machen

Wie erstelle ich .htaccess?

  1. Notizblock öffnen
  2. schreibe den Code (du kannst und tu es dann :)
  3. Speichern Sie das Dokument mit dem Namen .htaccess
  4. füllen Sie den Stamm der Website (oder in dem Ordner auf dem Server, wo wir die Einstellungen vornehmen)

* youritename.ru in den Beispielen ersetzen Sie mit der Adresse Ihrer Domain

Standardmäßige Htaccess-Einstellungen

Standardmäßige Htaccess-Einstellungen

1. Legen Sie die Standardstartseite fest

  DirectoryIndex Seitenname.html 

2. Fehlerseiten (Fehler) in .htaccess definieren

  ErrorDocument 403 /403.php 
Fehlerdokument 404 /404.php
ErrorDocument 500 / 500.php
Dementsprechend können die Adresse und der Dateiname unterschiedlich sein, z. B. /error/page404.html

3. Schutz vor Hotlinks
Die Tatsache, dass Inhalte von Seiten stehlen, ist lange Zeit keine Neuigkeit. Aber es passiert, dass die Stange zusammen mit den Bildern. Hier, um die Belastung des Servers und die Inflation des Verkehrs zu vermeiden, schreiben wir:

  RewriteEngine Ein 
RewriteCond% {HTTP_REFERER}! ^ $

# Domains, die mit Bildern von Ihrer Site verlinkt werden können
RewriteCond% {HTTP_REFERER}! ^ Http: // ([-a-z0-9] \.)? IhrNameName \ .ru [NC]

# zeigt keine Bilder bei Hotlinks
RewriteRule \. (Gif | jpe? G | png) $ - [F, NC, L]
Wenn Sie möchten, dass ein bestimmtes Bild auf einer fremden Seite anstelle von 403 Fehlern angezeigt wird, sollte die letzte Zeile wie folgt ersetzt werden:
  RewriteRule \. (Jpg | png | gif) $ http://yoursitename.ru/images/bildname.jpg [NC, R, L] 

4. Erzwingen, dass die Datei gespeichert wird, anstatt sie zu öffnen
Wenn Sie möchten, dass Besucher die Datei online speichern, anstatt sie anzusehen, schreiben wir in .htaccess:

  AddType application / octet-stream .doc .mov .avi .pdf .xls .mp4 

5. Zwischenspeichern von Dateien
In WordPress gibt es hierfür ein spezielles Plugin: wp-super-cache. Wenn Sie einen CMS verwenden, der das Caching nicht unterstützt, können Sie in .htaccess die folgenden Einstellungen vornehmen

  # Caching HTML und HTM pro Tag 
<FilesMatch ". (Html ​​| htm) $">

Kopfsatz Cache-Control "max-age = 43200"
</ FilesMatch>

# Caching CSS, Javascript und TXT-Dateien für die Woche
<FilesMatch ". (Js | css | txt) $">

Kopfsatz Cache-Control "max-age = 604800"
</ FilesMatch>

# Flash Caching und Bilder für einen Monat
<FilesMatch ". (Flv | swf | ico | gif | jpg | jpeg | png) $">

Kopfsatz Cache-Control "max-age = 2592000"
</ FilesMatch>

# verbietet das Zwischenspeichern von Skripten
<FilesMatch "\. (Pl | php | cgi | spl | scgi | fcgi) $">

Header deaktiviert Cache-Control
</ FilesMatch>
Der Parameter max-age wird in Sekunden angegeben.

6. Debug-Fehler aktivieren

  php_flag display_errors on 

Einrichten einer Weiterleitung mit .htaccess

Einrichten einer Weiterleitung mit .htaccess

1. 301 Weiterleitungen
Die optimale Lösung, um Besucher von alten auf neue Adressen umzuleiten, wenn sich die Struktur der Site im Laufe der Zeit verändert hat und die alten URLs irgendwo geblieben sein könnten.

  Redirect 301 /oldpage.html http://yoursitename.ru/newpage.html 

Es gibt eine andere solche Variante:
  Redirect permanent /oldpage.html http://yoursitename.ru/newpage.html 
Um ehrlich zu sein, kann ich den grundlegenden Unterschied zwischen den beiden nicht erklären. Vielleicht wird einer der Leser es erzählen.

2. Bonding Domains mit www und ohne www
Redirect von yoursitename.ru auf www.yoursitename.ru

  RewriteEngine Ein 
RewriteBase /
RewriteCond% {HTTP_HOST}! ^ Www.yoursitename.ru $ [NC]
RewriteRule ^ (. *) $ Http://www.yoursitename.ru/$1 [L, R = 301]
Umgekehrte Umleitung
  RewriteEngine Ein 
RewriteBase /
RewriteCond% {HTTP_HOST}! ^ Yoursitename.ru $ [NC]
RewriteRule ^ (. *) $ Http://yoursitename.ru/$1 [L, R = 301]

3. 302 Weiterleitungen
Wenn Sie auf der Website arbeiten, können Sie Besucher vorübergehend auf die gewünschte Seite senden (z. B. mit einer Beschreibung, wann die Arbeit abgeschlossen werden soll und wie Sie kontaktiert werden können).

  RewriteEngine an 
RewriteCond% {REQUEST_URI}! /informpage.html$
RewriteCond% {REMOTE_HOST}! ^ 12 \ .345 \ .678 \ .90
RewriteRule $ http://yoursitename.ru/informpage.html [R = 302, L]
Die Seite wird nur von Ihrer IP-Adresse aus betrachtet - 12.345.678.90

4. Umleiten zu einer anderen Site
Weiterleiten aller Besucher an eine andere Site zusätzlich zu den angegebenen IP-Adressen

  ErrorDocument 403 http://www.yoursitename.ru 
Bestellverweigerung, erlauben
Von allen ablehnen
Zulassen von 12.345.678.90
Zulassen von 12.345.678,92

5. Umleiten zu einer sicheren https-Verbindung

  RewriteEngine Ein 
RewriteCond% {HTTPS}! Ein
RewriteRule (. *) Https: //% {HTTP_HOST}% {REQUEST_URI}

Deaktivieren / Blockieren mit .htaccess

Deaktivieren / Blockieren mit .htaccess

1. Das Verbot, das Verzeichnis aufzulisten
Wird in Abwesenheit einer Indexdatei verwendet, wenn Sie das Anzeigen des Inhalts des Ordners (z. B. für Bilder) verhindern möchten:

  Optionen Alle -Indexe 
Umgekehrter Code, im Sinne der Erlaubnis
  Optionen + Indizes 

2. Blockieren des Zugriffs auf die Datei
Zum Beispiel könnte es Ihr .htaccess sein

  <Dateien .htaccess> 
Reihenfolge erlauben, verweigern
leugne von allem
</ Files>

3. Blockieren Sie den Zugriff auf das Verzeichnis
Blockiert den Zugriff nur auf einen bestimmten Ordner

  <Verzeichnis / root-Zugriff /> 
Auftrag erlauben, ablehnen
# Alles außer ...
von allen zulassen
Verweigern von 198.69.
</ Directory>
Erlaube den Zugriff nur von bestimmten IPs auf einen bestimmten Ordner (Adressen werden mit einem Leerzeichen geschrieben):
  # Geben Sie den Ordner an, dem der Zugriff durch den Hostnamen und seine IP verweigert wird 
<Verzeichnis / root-Zugriff />
Bestellverweigerung, erlauben
leugne von allem
# Adressen werden mit einem Leerzeichen geschrieben
Erlauben von 198.69.144.98 198.69.144.94 198.69.144.92
</ Directory>
Es ist auch möglich, sowohl einen Hostnamen als auch eine IP-Adresse in einer Liste anzugeben:
  # Geben Sie den Ordner an, dem der Zugriff durch Name und IP verweigert wird 
<Verzeichnis / root-Zugriff />
Auftrag erlauben, ablehnen
# Allen, ...
von allen zulassen
# ... außer dem Hostnamen und seiner IP
Verweigern von robot.fromx.com 148.145.21.14
</ Directory>

4. Blockierung durch IP
Die Spammer kümmern sich nicht darum

  <Limit GET> 
Auftrag verweigern, Erlauben
Verweigern von 12.345.678.90
Verweigern von 90.876.543.
Verweigern von .tvoe.tv
Erlaube von allen
</ Limit>
Wird blockiert:
  • Benutzer mit IP 12.345.678.90
  • alle Besucher mit IP fallen in den Bereich von 90.876.543.0 bis 90.876.543.255
  • und alle Besucher vom Anbieter tvoe.tv
Um den Zugriff auf den Site-Ordner zu verhindern, werden die Anweisungen allow und deny verwendet.
Zugriff von einer bestimmten IP-Adresse verweigern
  # Verbot von 16:18 am 31-03-2011 
Auftrag erlauben, ablehnen
von allen zulassen
Verweigern von 198.69.132.24
Schließen Sie den Zugriff auf ALLE außer bestimmten IPs
  Bestellverweigerung, erlauben 
leugne von allem
# Liste der IPs über den Bereich, von dem aus der Zugriff erlaubt ist
Zulassen von 194.111.70.48 194.78.47.128
Falls Sie den Zugang per Maske schließen müssen, verwenden Sie die unvollständige Adresse:
  # unvollständige Adresse 
198.69.
# vollständige Adressen entsprechend der ersten
198.69.132.24
198.69.136.89
198.69.1.8
Zugang durch Maske schließen:
  # Prohibition von 06:18 am 31-03-2011 
Auftrag erlauben, ablehnen
von allen zulassen
Verweigern von 198.69.

CNC Einstellungen mit .htaccess

Im Allgemeinen, wenn Sie mit WordPress arbeiten, können Sie eine "freundliche" URL im Bereich Einstellungen »Permanente Links (CNC) einrichten. Viele CMS unterstützen auch die Einstellung der Seitenadresse. Versuchen Sie daher, wenn möglich zuerst die Funktionalität des Moduls zu nutzen und starten Sie dann die Konfiguration von htaccess.

CNC Einstellungen mit .htaccess

1. Wie man von der Adresse entfernt? P =
Standardmäßig lautet die Adresse der Seite wie folgt: yoursitename.ru/?p=xxxx, wobei xxxx die ID des Artikels ist.

  RewriteCond% {REQUEST_URI} ^ / ([0-9] +) $ 
RewriteRule. * Http://yoursitename.ru/?p=%1 [R = 301, L]

2. Wie man aus der Adresskategorie entfernt
In Analogie zu der Vergangenheit schreiben wir

  RewriteRule ^ Kategorie /(.+)$ http://yoursitename.ru/$1 [R = 301, L]