Führer zu .htaccess und mod_rewrite

Mit dem Thema:


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


Kurzanleitung zum htaccess und mod_rewrite

Apache- "Chips" mod_rewrite und .htaccess Verwendung als etwas schwer unter den vielen enttäuscht Webmaster, aber es ist eine der schwierigsten Aufgaben , die von fast allen Web - Entwickler konfrontiert.

Ich möchte Ihnen eine einfache Lösung anbieten zu können , anstatt immer schwieriger zu finden , zu verstehen , wie die mod_rewrite und .htaccess. Die meisten Beispiele in diesem Artikel angegebenen verwenden können einfach auf den Webserver kopiert und hochgeladen werden.

Um die gleiche Sache Hunderte von anderen Webmastern nicht zu wiederholen, habe ich beschlossen, nur um diese Seite als Hinweis schaffen für die öffentliche Nutzung.

Wieder .htaccess - ist eine Konfigurationsdatei , die Sie den Apache - Webserver, mod_rewrite verwalten können - den Motor neu zu schreiben, von denen ein Web - Server die URL ändern können , wenn sie heruntergeladen werden.

.htaccess - Datei - eine Textdatei , die .htaccess gestattet. Man könnte sogar sagen, dass es eine Datei, die nur der Expansion besteht, weil es nicht die Namen der (bis zu "Punkt" Zeichen) enthält. Typischerweise wird diese Datei im Hauptstammverzeichnis Ihres Servers befindet, aber Sie können auch separate Dateien für verschiedene Verzeichnisse htaccess auf Ihrer Webseite erstellen.

Heiligsprechung

Das einfachste Beispiel -, um sicherzustellen, dass die Website enthält keine Fehler für die Heiligsprechung von der Homepage.

Viele Webmaster leiden nicht an einem sehr guten Ranking in den Suchmaschinen aufgrund der Tatsache, dass es mehrere Versionen der Homepage-URL sind, zum Beispiel:

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

Diese erscheinen als andere Seite URL, trotz der Tatsache, dass sie auf den gleichen Inhalt verweisen. Google entscheidet schließlich, welche Version richtig ist, aber es kann sehr lange dauern, und während dieser Zeit können Sie unnötige Probleme ficken.

Um dieses Problem zu lösen, indem Sie die folgende Zeile in die .htaccess-Datei:

  Optionen + FollowSymLinks 
RewriteEngine on
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]

Dieser Code ermöglicht es Ihnen, alle möglichen Optionen auf der Homepage http://www.site.com umleiten.

Die Umwandlung von HTML - Dateien in PHP

Manchmal müssen Sie PHP-Code auf der HTML-Seite statische Website zu nutzen. Anstatt alle Ihre HTML-Seiten in die entsprechenden PHP-Version umleiten, müssen Sie nur "sagen" Ihr Server muss sie die HTML-Dateien als PHP parsen.

  AddHandler application / x-httpd-php .html 

Dieser Code funktioniert mit allen Dateien, so dass, wenn Sie eine dynamische XML- oder ASP-Dateien erstellen möchten, wie PHP-Dateien verhalten, müssen Sie nur folgende Änderungen vornehmen:

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

Fehlerseiten

Benutzerdefinierte Fehlerseiten können leicht angepasst werden, wie CPanel (oder Direct), aber wenn Sie die Fehlerseite durch die .htaccess-Datei anpassen möchten, fügen Sie die folgende Zeile ein:

  etwaige Tippfehler Verarbeitung # 404 - Datei nicht gefunden 
Errordocument 404 http://www.site.com/404.php
Die Verarbeitung etwaige Tippfehler # 403 - Zugriff verweigert
Errordocument 403 http://www.site.com/403.php

Indexing Verzeichnis

Um Roboter von Google verhindern zu indizieren das Verzeichnis , müssen Sie die Indexseite für die notwendigen Verzeichnisse zu definieren. Es ist für einige Server nicht zwingend.

  Directory index.php3 

Ich ziehe es eine Umleitung auf der Indexseite eines Verzeichnisses oder einer anderen geeigneten Seite zu tun. Zum Beispiel kann www.site.com/images/ zu www.site.com weitergeleitet werden, und www.site.com/forum/ können weitergeleitet werden, um www.site.com/forum/index.php~~V

Umleiten von Seiten

Ein hervorragendes Beispiel für die Verwendung htaccess einer Seite zur anderen umzuleiten:

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

Umleiten Ihren Feed Feedburner

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

Leiten Sie sollten für alle Besucher außer dem Roboter Feedburner gelten:

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

Verbesserte hotlink-Schutz

Wenn Sie andere Websites direkt auf die auf Ihrer Website befindet sich Bilder beziehen verhindern wollen, aber die Suchmaschine Google, Yahoo und MSN Index ihnen zu erlauben, müssen Sie den folgenden Code verwenden:

  RewriteEngine on 
RewriteCond% {HTTP_REFERER}.
! RewriteCond% {HTTP_REFERER} ^ http // :? (. [. ^] + \) Site \. [NC]
RewriteCond% {HTTP_REFERER}! Google \. [NC]
RewriteCond% {HTTP_REFERER}! Search \? 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]

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

Persönlich lasse ich hotlink, sondern verwenden eine bestimmte Lösung , die verwendet Google Bilder - Service und Websites, hotlinkery auf Links zu Ihrer Website zu erhalten .

Erstellen von CNC - Links mit mod_rewrite

Apache Rewrite-Modul ist für die Umwandlung von dynamischen URL wie www.site.com/product.php?id=123 in statischen und benutzerfreundliche Art www.site.com/product/123 hauptsächlich verwendet.

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

Ein weiteres Beispiel, das URL führt: www.yoursite.com/script.php?product=123 Geist www.yoursite.com/cat/product/123/~~V

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

Entfernen von Query - Strings

Einige Seiten verlinken auf Ihre, das Hinzufügen der Abfrage-String. Zum Beispiel können Sie auf Ihre Website verweisen auf diesen Link http://www.site.com/index.php?source=seoblog verwenden, nur um zu wissen, wo Ihr Verkehr kommt. Dies bewirkt, dass das Auftreten von Duplicate Content für Ihre Website, so müssen Sie eine Umleitung auf Ihre Homepage einzurichten:

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

Während alle. Wenn Sie etwas hinzufügen möchten , wenden Sie sich bitte kamenty in ...

Auf den meisten Webhoster installiert zwei oder mehr Versionen von PHP. Normalerweise defaul ist 4.. Doch was in der Version 5 Ihre PHP - Skripte verarbeitet würden, können Sie in der .htaccess registrieren:

  AddType application / x-httpd-php5 .php 

Oder Sie können statt nur .php zu jeder Dateierweiterung .php5 hinzufügen.
Dies ist der Fall , wenn Sie zu faul rediktirovat .htaccess sind.






Beispiele .htaccess - Datei Einstellungen

Während einige unserer tapferen seo "Gurus" fremden Artikel zu übersetzen, keine Links zu den Original-Artikel zu installieren stört, werde ich Ihnen eine Auswahl von Codes geben .htaccess konfigurieren.

Fast alle Produkte erforderlich, zusätzlich zu

  • Umleitung und Sperrung - sie werden nach Bedarf angepasst
  • sowie CNC-Setup (ChelovekoPonyatnyhURL) - in der Regel können Sie CMS-Funktionalität erhalten

Wie eine .htaccess zu schaffen?

  1. offene Notebook
  2. Code schreiben (und dann können Sie es tun :)
  3. Speichern Sie das Dokument mit dem Namen .htaccess
  4. füllen Sie das Site-Stamm (oder in einen Ordner auf dem Server, wo wir Anpassungen vornehmen)

* Yoursitename.ru Beispiele die Adresse Ihrer Domain ersetzen

Defaults .htaccess

Defaults .htaccess

1. Stellen Sie die Standard - Startseite

  Directory pagename.html 

2. Bestimmung der Fehlerseite (Fehler) in der .htaccess

  Errordocument 403 /403.php 
Errordocument 404 /404.php
Errordocument 500 /500.php
Dementsprechend kann die Adresse und den Namen der Datei unterschiedlich sein, beispielsweise /error/page404.html

3. Schutz vor Hotlinking
Die Tatsache, dass der Inhalt der Seiten mit gestohlen wird, ist es nicht mehr Nachrichten. Aber es kommt vor, dass die Stange zusammen mit Bildern. Dies ist Last auf dem Server zu vermeiden, und das Blow-up-Verkehr, wir schreiben:

  RewriteEngine On 
RewriteCond% {HTTP_REFERER}! ^ $

# Domains, die Bilder von Ihrer Website verweisen
RewriteCond% {HTTP_REFERER} ^ http // :! ([-a-Z0-9] \.) Yoursitename \ .ru [NC]?

# Nicht zeigen Bilder bei hotlink
. RewriteRule \ (Gif | jpe g |? Png) $ - [F, NC, L]
Wenn Sie zu einer anderen Seite wollen, anstatt 403 Fehler ein bestimmtes Bild auftritt, sollte die letzte Zeile ersetzt werden durch:
  RewriteRule \. (Jpg | png | gif) $ Http://yoursitename.ru/images/imagename.jpg [NC, R, L] 

4. Speichern Zwangs statt die Datei zu öffnen
Wenn Sie Ihre Besucher wollen prosmatra statt Online-Datei speichern es in .htaccess schreiben:

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

5. Cache - Dateien
In Wordpress gibt es ein spezielles Plugin: wp-super-Cache. Wenn Sie auch die CMS verwendet werden, die nicht-Caching nicht unterstützt, können Sie die folgenden Einstellungen in .htaccess machen

  # Cache html und htm für einen Tag 
<Filesmatch "(HTML | htm) $.">

Header gesetzt Cache-Control "max-age = 43200"
</ Filesmatch>

# Cache CSS, Javascript und txt-Dateien für eine Woche
<Filesmatch "(js | css | txt) $.">

Header gesetzt Cache-Control "max-age = 604800"
</ Filesmatch>

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

Header gesetzt Cache-Control "max-age = 2592000"
</ Filesmatch>

# Verbot von Caching-Skripten
<Filesmatch "\ (pl | php | cgi | spl | scgi | fcgi) $.">

Kopf ungesetzt Cache-Control
</ Filesmatch>
Max-age-Parameter wird in Sekunden angegeben.

6. Fehler Aktivieren beim Debuggen

  php_flag display_errors auf 

Einrichten einer Umleitung mit .htaccess

Einrichten einer Umleitung mit .htaccess

1. 301 - Weiterleitung
Die optimale Lösung umleiten Besucher von alten zu neuen Adressen, wenn im Laufe der Zeit hat sich die Struktur der Website geändert, und die alten URLs irgendwo kann zu bleiben.

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

Es tritt auch eine Option:
  Redirect permanent /oldpage.html http://yoursitename.ru/newpage.html 
Aber was ist der grundlegende Unterschied zwischen ihnen, um ehrlich zu sein, kann ich nicht erklären. Vielleicht hat jemand von den Lesern wird es zeigen.

2. Verleimung Domain mit www und nicht-www
Umleiten zu adressieren yoursitename.ru auf www.yoursitename.ru

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

3. 302 - Umleitung
Wenn Sie auf der Website arbeiten, können Sie vorübergehend die Besucher auf eine bestimmte Seite zu senden (zum Beispiel eine Beschreibung, wann die Arbeit abgeschlossen sein wird und wie mit Ihnen in Verbindung setzen).

  RewriteEngine on 
RewriteCond% {REQUEST_URI}! /informpage.html$
RewriteCond% {REMOTE_HOST}! ^ 12 \ 0,345 \ 0,678 \ .90
RewriteRule $ http://yoursitename.ru/informpage.html [R = 302, L]
Durchsuchen der Website wird nur möglich sein, mit Ihrer IP-Adresse - 12.345.678.90

4. Umleiten auf eine andere Website
Umleiten alle Besucher auf eine andere Website, zusätzlich zu der angegebenen IP-Adresse

  Errordocument 403 http://www.yoursitename.ru 
Bestellen Sie leugnen, erlauben
Verweigern von allen
Lassen Sie von 12.345.678.90
Lassen Sie von 12.345.678.92

5. Forwarding https - Verbindungen zu sichern

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

Sperren / Sperrung mit .htaccess

Sperren / Sperrung mit .htaccess

1. Das Verbot der Verzeichnisliste
Es wird verwendet, wenn kein Index-Datei, wenn Sie den Zugriff auf den Inhalt des Ordners zu verweigern möchten (zB Bilder):

  Optionen Alle -Indexes 
Reverse-Code, im Sinne der Auflösung
  Options + Indexes 

2. Sperrung des Zugangs zu den Akten
Zum Beispiel könnte dies Ihr .htaccess sein

  <Dateien .htaccess> 
Um zu ermöglichen, verweigern
leugnen von allen
</ Files>

3. Sperren Sie den Zugriff auf ein Verzeichnis
Schließen nur Zugriff auf einen bestimmten Ordner

  <Verzeichnis / root-Zugriff /> 
Bestellen Sie erlauben, verweigern
# Alle außer ...
ermöglichen, von allen
Verweigern von 198,69.
</ Directory>
Erlauben Sie den Zugriff nur von bestimmten IP in einem bestimmten Ordner (die Adresse durch einen Raum aufgezeichnet):
  # Geben Sie den Ordner an, die den Zugriff von Host-Namen und IP verbieten 
<Verzeichnis / root-Zugriff />
Bestellen Sie leugnen, erlauben
leugnen von allen
# Die Adressen werden durch den Spalt aufgezeichnet
Lassen Sie von 198.69.144.98 198.69.144.94 198.69.144.92
</ Directory>
Es ist auch möglich, in einer Liste zu spezifizieren, und den Hostnamen und die IP-Adresse:
  # Geben Sie den Ordner an, die mit Namen Zugriff verbieten und IP 
<Verzeichnis / root-Zugriff />
Bestellen Sie erlauben, verweigern
# Wer ...
ermöglichen, von allen
# ... Außer für den Hostnamen und IP
Verweigern von robot.fromx.com 148.145.21.14
</ Directory>

4. Blockierung von ip
Um Spammer nicht stören

  <Limit GET> 
Deny Ordnung, zulassen
Verweigern von 12.345.678.90
Verweigern von 90.876.543.
Verweigern von .tvoe.tv
Lassen Sie von allen
</ Limit>
Sie werden gesperrt:
  • Benutzer mit der IP 12.345.678.90
  • Alle Besucher der ip, fällt in einen Bereich von bis zu 90876543255 90.876.543.0
  • und alle Besucher von tvoe.tv Anbieter
So verweigern Zugriff auf die Website verwendeten Ordner Richtlinien erlauben oder zu verweigern.
Verweigern des Zugriffs auf bestimmte IP-Adressen
  # Ban mit 16.18 31-03-2011 
Bestellen Sie erlauben, verweigern
ermöglichen, von allen
Verweigern von 198.69.132.24
Schließen Zugriff auf alle mit Ausnahme der angegebenen IP
  Bestellen Sie leugnen, erlauben 
leugnen von allen
# IP-Liste durch ein Leerzeichen getrennt von denen der Zugang erlaubt ist
Lassen Sie von 194.111.70.48 194.78.47.128
Wenn Sie die Zugriffsmaske zu schließen, die unvollständige Adresse verwenden:
  # Unvollständige Adresse 
198,69.
# Voll-Adressen, die dem ersten
198.69.132.24
198.69.136.89
198.69.1.8
Schließen Zugriffsmaske:
  # Ban mit 6.18 31-03-2011 
Bestellen Sie erlauben, verweigern
ermöglichen, von allen
Verweigern von 198,69.

Einstellen der CNC über .htaccess

Im Allgemeinen, wenn Sie Wordpress verwenden, dann stellen Sie die "freundliche" url, Einstellungen »Permalinks (NC). Viele CMS unterstützt auch die Adresse der Seite einstellen. Deshalb, wenn möglich, versuchen Sie zunächst den Motor Funktionalität zu verwalten, und dann gehen Sie .htaccess einzurichten.

Einstellen der CNC über .htaccess

1. So entfernen Sie Adressen aus? P =
Standardmäßig ist die Seitenadresse wie folgt: yoursitename.ru/?p=xxxx, wobei xxxx - id des Artikels.

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

2. Wie wird die Kategorie von Adressen zu entfernen
Analog zur früheren Art des Schreibens

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