Datei-Konfigurator .htaccess Apache-Server

Mit dem Thema:


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


.htaccess (mit einem Punkt am Anfang des Namens) - es ist eine Datei-Konfigurator der Apache - Server, mit dem Sie den Server in separaten Verzeichnissen (Ordner) , indem nicht den Zugang zu der Hauptkonfigurationsdatei konfigurieren können. Zum Beispiel Dateiberechtigungen im Verzeichnis, die Änderung des Namens der Indexdatei Apache Fehler unabhängig zu verarbeiten, die Besucher auf eine spezielle Fehlerseite umleiten zu setzen. .htaccess ist ein einfaches Textdokument, das der Erweiterung .htaccess. Diese Datei ist in der Regel in der Stammwebsite befindet, aber Sie können auch zusätzliche .htaccess-Dateien für verschiedene Verzeichnisse auf Ihrer Website erstellen.

Mod_rewrite - Modul von Webservern verwendet URLs zu konvertieren.

Richtlinie Modul mod_rewrite

  • RewriteBase
  • RewriteCond
  • RewriteEngine
  • RewriteLock
  • RewriteLog
  • RewriteLogLevel
  • RewriteMap
  • RewriteOptions
  • RewriteRule

Ausführungsformen der Umleitung über .htaccess-Datei

  1. Einfache Umleitung:
      Redirect 301 / http://www.domainname.ru/
    
    oder
      umleiten / secret http://www.site.ru/nosecret
    
    Wir stellen in einer .htaccess oder httpd.conf - Datei für Apache. Die erste "/" bedeutet, dass alle Top-Level-Website inklusive aller Unterverzeichnisse wird, weitergeleitet werden (vergessen Sie nicht die letzte "/" zu setzen). Wenn Sie nur die Seite weiterleiten möchten, die alte PR der Seite halten, können Sie dies:

    Redirect 301 /old/old.htm http://www.you.ru/new.htm wo:
    /old/old.htm - Pfad und den Namen der alten Seite
    http://www.you.com/new.htm - ein neuer Weg und ein neuer Name bewegt Seite

  2. Umleitung zu einer beliebigen Seite auf die IP des Benutzers oder eine bestimmte Seite (sowie den Namen der Maske) anfordert.
    Wenn der Benutzer 192.152.37.125 ip, wird es auf die Seite user.php weitergeleitet:
      SetEnvIf REMOTE_ADDR 192.152.37.125 REDIR = "redir"
     RewriteCond% {REDIR} redir
     RewriteRule ^ / $ /user.php
    
  3. Umleiten, wenn bestimmte Dateien anfordert. Wenn die angeforderten Dateien, die Erweiterung nicht in der .htaccess-Datei angegeben (gif und jpg), ist es notwendig, umleiten:
      RewriteEngine On
     RewriteRule (gif | jpg) !. $ Index.php
    

  4. Mit mod_rewrite:
      Optionen + FollowSymLinks 
     RewriteEngine on 
     RewriteCond% {HTTP_HOST} ^ ihredomain \ .ru 
     RewriteRule ^ (. *) $ Http://www.yourdomain.ru/$1 [R = permanent, L]
    

  5. Leiten Sie den regulären Ausdruck:
      RedirectMatch 301 Http (. *): //www.yourdomain.ru$1 In der .htaccess-Datei vorgeschrieben. 
    
    (. *) RedirectMatch entspricht tatsächlich den regulären Ausdrucksmuster nach dem Domainnamen. So können Sie nicht Muster auf ^ / yourdomain.ru Anpassung durchführen. Sie können jedoch die Seite mit der Endung .html, um die Dateien mit dem gleichen Namen, aber mit einer Erweiterung .php konvertieren:
      RedirectMatch 301 (. *) \ Html $ http :. //www.yourdomain.ru$1.php
    
    Wenn Sie eine andere Umleitung für einzelne Seiten zu tun möchten, können Sie Folgendes verwenden:
      RedirectMatch Permanent ^ / html / resources.html $ http://www.newdomain.com/resources.php 
     RedirectMatch Permanent ^ / html / other_page.html $ http://www.newdomain.com/other_page.php 
     RedirectMatch Permanent ^ / (. *) $ Http://www.newdomain.com/ 
    
    "RedirectMatch Permanent" - das ist das Äquivalent von "RedirectMatch 301" string "* (Wildcard)" der letzte in dieser Liste sein sollte.

  6. Erstellen einer bequem lesbaren URL
    So konvertieren, zum Beispiel www.site.ru/product.php?id=123 www.site.ru/product/123 auf folgende Weise:
      RewriteEngine on
     RewriteRule ^ Produkt /([^/\.]+)/?$ product.php? Id = $ 1 [L]
    
    Im folgenden Beispiel, verwandeln wir www.site.ru/script.php?product=123 in www.site.ru/cat/product/123/:
      RewriteRule Katze /(.*)/(.*)/$ /script.php?$1=$2
    

  7. Umleiten zu PHP:
      header ( "HTTP / 1.1 301 dauerhaft verschoben"); 
     header ( "Location: http://www.newdomain.ru/newdir/newpage.htm"); 
     exit (); 
    
    Natürlich ist es notwendig, eine Seite zu erstellen, wenn die den Zugriff und die Umleitung auftreten wird, und legen Sie es auf dem Server. Und besser wählen Sie HTTP / 1.1 (statt HTTP / 1.0 oder HTTP / 0.9, die nicht unterstützen, virtuelles Hosting)

  8. Leiten Sie alle Dateien in einem Dateiordner.
    Zum Beispiel müssen Sie nicht mehr einen Abschnitt der Website Super Rabatt und wollen alle Anforderungen an den Ordner / Superdiscount eine /hot-offers.php Datei umleiten. Um dies zu tun, fügen Sie den folgenden Code in der .htaccess.
      RewriteRule ^ Superdiscount (. *) $ /hot-offers.php [L, R = 301]
    

  9. Leiten Sie alle Ordner mit Ausnahme einer Datei
    Im folgenden Beispiel werden alle Dateien im Ordner / Superdiscount wird auf die auf /hot-offers.php Dateien außer /superdiscount/my-ebook.html Hof weitergeleitet Einfassungen sollten /hot-to-make-million.html umgeleitet werden
      RewriteRule ^ Superdiscount / my-ebook.html /hot-to-make-million.html [L, R = 301]
     RewriteRule ^ Superdiscount (. *) $ /hot-offers.php [L, R = 301]
    

  10. Dynamische Redirect-URL in die neue Datei.
    Diese Option ist nützlich, wenn Sie eine dynamische URL mit Parametern neue statische Datei umleiten möchten.
      RewriteRule ^ article.jsp? Id = (. *) $ /latestnews.htm [L, R = 301]
    
    So, jetzt die Anforderung an den Dateityp http://www.kass.ws/article.jsp?id=8632 und / oder http://www.kass.ws/article.jsp?id=1245 Datei wird auf http geschickt : //www.kass.ws/latestnews.htm.

  11. umleiten Massen neue Dateien.
    Tepep zu den schwierigsten Moment bewegen, wenn Sie zum Beispiel nach einer Änderung Ihres CMS viele URL-s, umleiten müssen. Hier auf einmal eine Reihe von Problemen. Erstens nehmen die Einführung der geänderten Adresse in der .htaccess-Datei, die eine sehr lange Zeit, und in sich selbst ist unangenehm Aktivität. Zweitens sind zu viele Einträge in der .htaccess-Datei wird den Apache-Server verlangsamen. Und drittens, wenn eine große Anzahl von Informationen, wie zu machen ist sehr wahrscheinlich, dass Sie irgendwo einen Fehler machen. Dazu ist der beste Weg, um einen Programmierer einzustellen, die Ihnen eine dynamische Umleitung schreiben.
    Das folgende Beispiel ist in PHP geschrieben, sondern kann auch in jeder Sprache erfolgen. Angenommen, Sie zu einem neuen System von Links auf Ihrer Website bewegt haben und alle Dateien mit alten id Endung sollte sredirekcheny sein. Erstellen Sie zunächst die Datenbanktabelle, die alte ID und neue URL für die Umleitung enthält. old_id INT new_url VARCHAR (255) Als nächstes schreiben wir den Code, der Ihre alte ID neue URL-s verbinden
    in .htaccess Danach fügen Sie die folgende Zeile:
      RewriteRule ^ / Produkt - _ ([0-9] +) php /redirectold.php?productid=$2 (. *).
    
    dann erstellen Sie eine PHP-Datei redirectold.php, der die 301-Weiterleitungen unterstützt:
      <? Php
     Funktion getRedirectUrl ($ productid) {
     // Verbindung zur Datenbank
     $ DServer = "localhost";
     $ DDB = "mydbname";
     $ Düser = "mydb_user";
     $ DPass = "Passwort";
    
     $ S = @mysql_connect ($ dServer, $ Düser, $ dPass)
     oder die ( "Konnte nicht zum Datenbankserver verbinden");
    
     @mysql_select_db ($ DDB, $ s)
     oder die ( "Konnte nicht zur Datenbank verbinden");
    
     $ Query = "SELECT new_url FROM Umleitungen WHERE old_id =".  $ ProductId;
     mysql_query ($ query);
     $ Ergebnis = mysql_query ($ query);
     $ HasRecords = mysql_num_rows ($ result) == 0?  false: true;
     if (! $ hasRecords) {
     $ Ret = 'http://www.yoursite.com/';
     } Else {
     while ($ row = mysql_fetch_array ($ result))
     {
     $ Ret = 'http://www.yoursite.com/'.  $ Row [ "new_url"];
     }
     }
     mysql_close ($ s);
     return $ ret;
     }
    
     $ ProductId = $ _GET [ "productid"];
     $ Url = getRedirectUrl ($ productid);
    
     header ( "HTTP / 1.1 301 dauerhaft verschoben");
     header ( "Location: $ url");
     exit ();
     ?>
    

    Nun werden alle Anforderungen an Ihre alte URL-s verursacht redirectold.php, der die neue URL zu finden und gibt eine 301-Antwort auf Ihre neue Verbindung.

    Umleitet in Abhängigkeit von der Zeit

    Wenn Sie Tricks zu verwenden, wie zum Beispiel den Inhalt der zeitabhängigen Masse von Webmaster müssen noch CGI-Skripte verwenden, die Umleitungen zu speziellen Seiten produzieren. Wie kann dies über mod_rewrite getan werden?

    Es gibt viele Variablen, diese TIME_xxx Bedingungen umzuleiten. In Verbindung mit den speziellen lexicographic Vergleichsmustern wir können zeitabhängige umleitet STRING und STRING = produzieren:
     
      RewriteEngine on RewriteCond% {TIME_HOUR}% {TIME_MIN}> 0700 RewriteCond% {TIME_HOUR}% {TIME_MIN} <1900 RewriteRule ^ foo \ .html $ foo.day.html RewriteRule ^ foo \ .html $ foo.night.html 

    Es bietet Content foo.day.html wenn von 7.00 bis 19.00 Uhr und der Rest des Inhalts der foo.night.html URL foo.html angefordert.


  12. Wir entfernen alle Anfragen beginnen "WWW" .
     RewriteEngine on # offen zu legen, dass wollen mod_rewrite verwenden
     RewriteCond% {HTTP_HOST} ^ www \. (. *) [NC]
     RewriteRule ^ / (. *) Http :? //% 1 / $ 1 [L, R = permanent]
    

  13. Ändern Sie die Erweiterung .html in .php
    Manchmal kommt es vor, dass Sie eine statische Website haben, aber Sie müssen Gliederungen es jeden PHP-Skript. Um dies zu tun, müssen Sie den Server anweisen, diese Seite als php-Datei zu analysieren.
     AddHandler application / x-httpd-php .html
    
    Diese Technik kann auch für andere Dateierweiterungen verwendet werden:
     AddHandler application / x-httpd-php .xml
     AddHandler application / x-httpd-php asp
    

Verweigern des Zugriffs auf ein bestimmtes Verzeichnis

  1. für alle auf alle Dateien in einem Verzeichnis:
      leugnen von allen
    
  2. auf eine bestimmte Datei:
     leugnen von allen
    
  3. von IP-User:
      Um leugnen, erlauben
     leugnen von allen
     ermöglichen, von 192.152.37.125
    
    Zugriff auf dieses Verzeichnis wird nur dem Benutzer mit ip 192.152.37.125 zugelassen werden.

    Und wenn Sie dagegen wollen, eine eigene IP-Verbot Benutzern den Zugriff auf Ihre Website, dann die folgenden Zeilen schreiben:

     Um zu ermöglichen, verweigern
     ermöglichen, von allen
     leugnen von 192.152.37.125
     leugnen von 123.456.177
    
  4. Richtlinie Optionen -Indexes - ein Verbot der Darstellung von Verzeichnisinhalte in Abwesenheit der Indexdatei Manchmal müssen Sie sicherstellen, dass, wenn es keine Datei im Verzeichnis, die standardmäßig angezeigt wird, nicht eine Liste von Dateien in einem Verzeichnis ausgegeben. Dann können Sie die folgende Zeile in .htaccess hinzu:
      Optionen -Indexes
    
    In diesem Fall wird statt einer Liste von Dateien in einem Verzeichnis Besucher erhalten Zugang verboten - einen HTTP - Fehler 403.
  5. Verweigern des Zugriffs auf Dateien mit mehreren Arten von Erweiterungen
     leugnen von allen
    
    Verweigert den Zugriff auf die Dateien mit der Endung * .inc, * .conf und CFG. Obwohl die Richtlinie ist, standardmäßig ist es nicht mit regulären Ausdrücken arbeiten, aber kann, indem man die Tilde (~) in der Optionen-Direktive aktiviert werden. Die Syntax ist: [Tilde] [Leerzeichen] [dalee_vse_bez_probelov] diesen Zugriff zu sperren, geben Sie die folgenden Schritte aus:
      RewriteRule ^ .htaccess $ - [F]
    
    Es wird normalerweise übersetzt mit:
    Wenn jemand die Datei .htaccess zuzugreifen versucht, muss das System einen Fehlercode "HTTP-Antwort von 403 'oder erzeugen" 403 Forbidden - Sie haben keine Berechtigung /.htaccess auf diesem Server zuzugreifen. "

    Entwurf ^ .htaccess $ in einem regulären Ausdruck bedeutet:
    ^ - Der Beginn der Ankerleine
    $ - Ende der Linie Anker
    . - Regulärer Ausdruck Punkt '.' bezeichnet eine Meta-Zeichen und muss durch einen umgekehrten Schrägstrich (Backslash) geschützt werden, wenn Sie noch einen tatsächlichen Punkt wollen.

    Der Dateiname muss genau zwischen dem Start- und Ziel Anker liegen. Dadurch wird sichergestellt, dass nur diese bestimmten Dateinamen und kein anderer einen Fehlercode erzeugen.
    [F] - eine spezielle "Verbot" Checkbox (verboten).
    [NC] - Groß- und Kleinschreibung Buchstaben.
    [OR] - Bedeutung "oder die folgende Bedingung".

Definition-Codierung

Definition-Codierung, in dem "gibt" Server-Dateien

  AddDefaultCharset windows-1251
Optionen: KOI8-R, UTF-8, Windows 1251

Die Bestimmung der Codierung der hochgeladenen Dateien

  CharsetSourceEnc windows-1251

Einrichten eines Passworts für ein Verzeichnis mit .htaccess

Um ein Kennwort für das Verzeichnis gesetzt, können Sie grundlegende Authentifizierungssystem in den Apache Web-Server zur Verfügung gestellt verwenden. Erstellen Sie ein Verzeichnis auf, die den Zugang zu beschränken, indem Sie das Kennwort möchten, .htaccess-Datei mit diesen Richtlinien:
  AuthType Basic
 AuthName "Einige Namen"
 AuthUserFile /www/some_login/www/htdocs/some_dir/.htpasswd
 require valid-user
/www/some_login/www/htdocs/some_dir/.htpasswd Pfad ist der Pfad zu der Passwort-Datei auf der Festplatte von unserem Server. Zum Beispiel, wenn Sie die .htpasswd Datei platzieren (es wird die Passwörter sein) auf das Home-Verzeichnis, in dem Sie sich befinden, indem auf dem FTP-Server anmelden, wird der Pfad zu dieser Datei suchen /www/some_login/www/htdocs/some_dir/.htpasswd wo some_login - Ihr Benutzername. Die AuthUserFile Richtlinie einen absoluten Pfad zum Login / Passwort angeben, die wir später schaffen. Wenn Sie eine .htaccess-Datei auf Ihrem Computer zu erstellen, anstatt direkt auf dem Server mit einem Texteditor, ein besonderes Augenmerk auf die Tatsache, dass die .htaccess per FTP zu übertragen ist ist eine reine Text (ASCII-Modus).

Erstellen Sie ein Passwort-Datei. Kennwort: Die Kennwortdatei sollte Zeilen der Form Login enthalten. Das Passwort muss den MD5-Algorithmus verschlüsselt werden. Eine Möglichkeit, eine solche Datei zu erstellen - verwenden Sie das Programm mit Apache gebündelt - htpasswd (auf unserem Server ist es im Verzeichnis / usr / local / apache / bin, vollständigen Pfad - / usr / local / apache / bin / htpasswd).

Überlegen Sie, wie Sie eine Kennwortdatei in Unix-Shell direkt auf dem Server zu erstellen. Gehen Sie auf die Schale und die folgenden Befehle aus:

  htpasswd -mbc Htpasswd benutzer1 7B1safkir
Erstellen Sie eine neue Datei .htpasswd, die für den Benutzer user1 mit dem Kennwort einen Eintrag fügt auf der Kommandozeile angegeben -.
  htpasswd .htpasswd benutzer2
In die bereits bestehende Datei Benutzer user2 Htpasswd und das Passwort eingegeben wird manuell in Antwort auf eine Anfrage für das Programm -.

Nachdem er von Institutionen aller Anmeldungen Abschluss müssen die Datei hochzuladen. Auf den anderen Methoden der Passwörter auf den Seiten Einstellung

Definieren Sie eigene Fehlerseiten

Stellen Sie Ihre eigene Fehlerseite sein kann, wie folgt:
  Errordocument 404 http://www.site.ru/404.php
IE ignoriert die Seitengröße von weniger als 512 Bytes ist.

Indexing Verzeichnisse und Unterverzeichnisse

Um zu verhindern, die Indizierung durch Suchmaschinen Verzeichnisse und Unterverzeichnisse, müssen Sie diese Zeile zu registrieren, zum Beispiel:
  Directory index.php
Diese Anweisung legt die Datei, die aufgerufen wird, wenn das Verzeichnis zugreifen, ohne einen Dateinamen angeben.

Sie können mehrere Indexseiten angeben. Wenn Sie ein Verzeichnis anfordern, werden sie in der Reihenfolge durchsucht werden, in dem in der Anweisung Directory aufgeführt sind. Wenn keine Datei index.html gefunden wird, wird die Datei index.php suchen usw.

  Directory index.html index.php index.shtml

Ich persönlich bevorzuge die leere Verzeichnisse oder auf der Homepage oder auf einer anderen geeigneten Seite zu übermitteln. Beispielsweise kann das Verzeichnis www.site.ru. zu www.site.ru/pic/~~V weitergeleitet

Schützen Sie Ihre Bilder von Download

Sehr oft kommt es vor, dass Webmaster eklatant das Kopieren von Inhalten von Ihrer Website, zusammen mit Zeichnungen und Gemälde werden mit Ihrem gleichen Server geladen. Dies schafft zusätzliche Verkehr, der oft zu mehreren Problemen führt. Wie man sich gegen diese Webmaster zu schützen und Suchmaschinen von der Indizierung des Bildes verhindern? Es ist ganz einfach:
  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 - das Bild anstelle von realen Bildern angezeigt werden. Ich empfehle dieses Bild zeigen Sie Ihr Logo und Link zu Ihrer Webseite.

Ein weiterer varinat Zugriff auf nicht autorisierte Websites mit Bildern verweigern:

  SetEnvIfNoCase Referer "^ $" local_ref = 1
 SetEnvIfNoCase Referer "^ http // :? (www. \) Htmlweb \ .ru" local_ref = 1
 SetEnvIfNoCase Referer "^ http // :? (www. \) Images \ .yandex \ .ru" local_ref = 1
 SetEnvIfNoCase Referer "^ http // :? (www. \) Hghltd \ .yandex \ .com" local_ref = 1
 Lassen Sie Ordnung, Deny
  Zulassen von env = local_ref

Suchmaschinen und alle Arten von Scannern kollosalny Besucher auf Ihre Website erstellen. Der folgende Codeblock wird Bots erlauben den Zugriff auf die Website zu blockieren.

  RewriteCond% {HTTP_USER_AGENT} (Googlebot | Slurp | Spinne | Twiceler | Heritrix |
	 Kombinieren | appie | boitho | E-SocietyRobot | Exabot | Nutch | OmniExplorer |
	 MJ12bot | ZyBorg / 1 | Frage \ Jeeves | AskJeeves | ActiveTouristBot |
	 JemmaTheTourist |  agadine3 | BecomeBot | Clustered-Search-Bot |
	 MSIECrawler | Freefind | Galaxie | genieknows | INGRID | grub-Kunde |
	 MojeekBot | NaverBot | NetNose-Crawler | OnetSzukaj | PrassoSunner |
	 Asterias \ Crawler | THUNDERSTONE | GeorgeTheTouristBot |
	 VoilaBot | Vagabondo | fantomBro wser | stealthBrowser | cloakBrowser |
	 fantomCrew \ Browser | Girafabot | Indy \ Library | Intelliseek | Zealbot |
	 Windows \ 95 | ^ Mozilla / 4 \ .05 \ \ [en \] $ | ^ Mozilla / 4 \ 0,0 $) [NC]
 RewriteRule ^ $ (. *) - [F]
 #
 RewriteCond% {HTTP_USER_AGENT} ^ Mozilla. * [NC, OR]
 RewriteCond% {HTTP_USER_AGENT} ^ Opera. * [NC, OR]
 RewriteCond% {HTTP_USER_AGENT} ^ Firefox. * [NC, OR]
 RewriteCond% {HTTP_USER_AGENT} ^ Netscape. * [NC]
 RewriteRule ^ $ (. *) - [L]
 RewriteRule ^ $ (. *) - [F]

Tracking-Zugriffe auf Ihre robots.txt-Datei

Um auf den Besuch der Suchmaschinen mehr Informationen haben, ist es nützlich, mehr Informationen zu, die Datei robots.txt den Zugriff auf diese zu oganizovat ".htaccess" müssen die folgenden Einträge haben:
  RewriteEngine on
  Optionen + FollowSymlinks
  RewriteBase /
  RewriteRule ^ robots.txt $ /robot.php?%{REQUEST_URI}
Nun, wenn Sie die Datei "robots.txt" ersuchende unsere RewriteRule leitet den Besucher (Roboter), um das Anforderungsskript robot.php zu verarbeiten. Darüber hinaus ging die Variable an das Skript, die in Übereinstimmung mit Ihren Anforderungen verarbeitet werden. 'REQUEST_URI' gibt den Namen der angeforderten Datei. In diesem Beispiel - 'robots.txt'. Das Skript liest den Inhalt von "robots.txt" und es um Web-Browser oder eine Suchmaschine Spinne senden. So können wir Hits und Besucher davon ausgehen, Dateien zu protokollieren.

PHPSESSID

So deaktivieren Sie die URL PHPSESSID Zugabe zu Beginn der index.php einfügen:

  ini_set ( "session.use_trans_sid", 0);

Oder montieren Sie es in .htaccess:

  php_flag session.use_trans_sid Off

Wenn Sie all diese Sound kompliziert tun, gebrauchsfertig Service Transformation dynamische URL in statische durch .htaccess mit

Richtlinie Cache

Caching für alle Arten von Dateizugriffszeit
  ExpiresActive auf
 ExpiresDefault "Zugang Plus 600 Sekunden"
Caching für alle Arten von Dateien, die von der Änderungszeit
  ExpiresActive auf
 ExpiresDefault "Modifikation und 600 Sekunden"
Caching für bestimmte Arten von Dateien
  ExpiresByType text / css "Modifikation und 600 Sekunden"
 ExpiresByType image / jpeg "Modifikation und 600 Sekunden"
 ExpiresByType image / gif "Modifikation und 600 Sekunden"
 ExpiresByType image / x-ico "Modifikation und 600 Sekunden"
 ExpiresByType image / jpeg "Modifikation und 600 Sekunden"

Ban-Caching mit Apache-Server

Öffnen Sie den Apache httpd.conf Server - Konfigurationsdatei und Kommentar- die folgenden Zeilen:

 LoadModule- expires_module modules / mod_expires.so
 LoadModule- headers_module modules / mod_headers.so 
 ...
 AddModule mod_expires.c
 AddModule mod_headers.c

Geben Sie Folgendes in .htaccess:

  # Ban Caching in diesem Ordner
 # Sie müssen Module wechseln
 # Mod_headers.c und mod_expires.c
 #
 # Cache-Control-Header
 Kopf append Cache-Control "no-store, no-cache, Must-revalidate"
 # Der Expires-Header
 ExpiresActive On
 ExpiresDefault "jetzt"

der Cache ist bereits aus - Benötigte Header werden automatisch, und schreiben sie speziell ist nicht mehr notwendig, in PHP gesendet!

Beschreibung http-Cache - Header Cache-control

Caching via .htaccess-Datei

  Auflösung # Caching in diesem Ordner
 # Sie müssen Module wechseln
 # Mod_headers.c und mod_expires.c
 #
 # Cache-Control-Header
 Kopf append Cache-Control "public"
 # Der Expires-Header
 ExpiresActive On
  ExpiresDefault "access plus 1 hours"
  #ExpiresDefault "Zugang plus 10 years"

Caching von Javascript-Dateien unter Verwendung von .htaccess-Datei

 ExpiresDefault "access plus 3 days"

Seien Sie vorsichtig, wenn Sie das Caching, da wenn eine Datei ändert, kann der Benutzer die neue Version erst nach 3 Tagen!

Wie HTML-Seiten zu erstellen PHP-Code zu behandeln?

Verschreiben in der .htaccess-Datei die folgenden Zeilen:
  RemoveHandler .php .htm .html
 AddHandler application / x-httpd-php .php .htm .html

Wie mehrere Websites auf dem gleichen Shared-Hosting-Host?

Um Platz zwei oder mehr Stellen auf dem gleichen Shared-Hosting, trotz führt Sie zu den Tarifplan die Anzahl der Domänen in der Datei sein muss ".htaccess" verschreiben die folgenden Zeilen:

  RewriteEngine On
 RewriteRule ^ newDirectory / - [L]
 RewriteCond% {HTTP_HOST} (www.)? Newdomain.ru [NC]
 RewriteRule (. *) NewDirectory / $ 1 [L]

wo:
newDirectory / - Ordner, die auf dem zweiten Standort basieren wird
newdomain.ru - die Domäne, für die wir die Umleitung tun

Beachten Sie, dass in diesem Fall haben Sie eine einzelne E-Mail-Konto. dh wenn Sie ein Feld dort [email protected]~~V haben, erscheint die newdomain.ru nach Domain-Konnektivität bei [email protected] Box zweiten Namen - [email protected]. Und wenn Sie eine neue Mailbox (zB info) erstellen, wird es automatisch zwei Namen zugewiesen - [email protected] und [email protected].

Suche Seiten in mehr als ein Verzeichnis

Manchmal ist es notwendig, die Web-Server zu suchen, die Seite in mehr als ein Verzeichnis zu ermöglichen.

  RewriteEngine on

 # Zuerst versuchen, es in der angegebenen Position zu finden / ...
 # ... Und wenn dann festgestellt, die Suche beenden:
 RewriteCond / your / docroot / dir1 /% {REQUEST_FILENAME} -f
 RewriteRule ^ (. +) / Ihr / docroot / dir1 / $ 1 [L]

 # Zweitens - probieren Sie es in der Kneipe zu finden / ...
 # ... Und wenn dann festgestellt, die Suche beenden:
 RewriteCond / your / docroot / dir2 /% {REQUEST_FILENAME} -f
 RewriteRule ^ (. +) / Ihr / docroot / dir2 / $ 1 [L]

 # Ansonsten für andere Richtlinien weiter
 RewriteRule ^ (+.) - [PT]

Virtual User Hosts

Wenn Sie www.subdomain.domain.ru Adressen für die Benutzer von Seiten zur Verfügung stellen möchten, können Sie den folgenden Satz von Regeln für die Umrechnung http://www.subdomain.domain.ru/path der innere Pfad / home / Sub-Domain / Pfad verwenden:

  RewriteEngine on
 RewriteCond% {HTTP_HOST} ^ www \. [^.] + \. Ru $
 $ 1 [C] RewriteRule ^ (. +)% {HTTP_HOST}
 RewriteRule ^ www \. ([^.] +) \. Ru (. *) / Home / $ 1 $ 2

Beschädigte Dateien, wenn auf den Server hochgeladen

Wenn Dateien über das Formular übertragen (falls angegeben enctype = "multipart / form-data") werden binäre Daten beschädigt, in /cgi-bin/.htaccess Richtlinie registrieren:
  CharsetRecodeMultipartForms Aus.

Fehler beim Laden von SWF-Dateien.
Fehler beim Zugriff auf Seiten, die Schlüsselwörter enthalten,
wie $ _REQUEST

Dies kann auf die installierte Modul fällig in Apache. Standardmäßig blockiert es in die Query-String an die SQL-Argumente und andere potenziell gefährliche Befehle.

Mögliche Fehlermeldungen:

verboten

Sie haben keine Berechtigung /adm/index.php auf diesem Server zuzugreifen. Zusätzlich wurde ein 404 Not Found Fehler aufgetreten bei dem Versuch, eine Anweisung Errordocument zu verwenden, um die Anforderung zu verarbeiten.
oder
Der Antrag wurde abgelehnt und unsicher.
In den .htaccess
 SecFilterEngine Off
 SecFilterScanPOST Off
Für Beiträge:
"POST /wp-admin/async-upload.php HTTP / 1.1" 406 354 "-" "Shockwave Flash"
Sie können den Schutz entfernen nur Dateien auf dem Server zu laden:
 SecFilterEngine Off
 SecFilterScanPOST Off

Ein optimaler Schutz ist nur aus dem Ordner entfernt, wo es gebraucht wird, ohne den Schutz der gesamten Website zu entfernen.

Servervariablen

Diese Art von Variable% {NAME_OF_VARIABLE}

NAME_OF_VARIABLE was kann eine Zeichenfolge aus der folgenden Liste entnommen werden:

HTTP-Header: Verbinden & Anfrage:
HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT
REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
interne Server: System: besonderes:
DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
ZEIT
API_version
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ

Diese Variablen sind völlig im Einklang mit ähnlich benannten MIME-Header HTTP und Apache - Server - Variablen oder Felder von struct tm Unix - Systemen. Diejenigen, die speziell zu mod_rewrite sind, umfassen:

IS_SUBREQ - wird der Text «wahr» enthalten , wenn die Anforderung derzeit eine Unterabfrage ausgeführt wird , «falsch» im anderen Fall. Unteranforderungen können durch Module erzeugt werden, die mit den zusätzlichen Dateien oder URI umgehen müssen ihre eigenen Aufgaben auszuführen.

API_version - Diese Version des API Apache - Modul (interne Schnittstelle zwischen Server und Modul) in der aktuellen Server - Assembly wie definiert in include / ap_mmn.h. API-Version des Moduls entspricht der Version von Apache (für die Version von Apache 1.3.14, zum Beispiel ist es 19.990.320: 10), aber es ist vor allem interessant Modul Autoren.

THE_REQUEST - Volle Linie der HTTP - Anforderung vom Browser - Server gesendet (dh «GET /index.html HTTP / 1.1» ). Es sind keine zusätzlichen Header vom Browser gesendet.

REQUEST_URI - Die Ressource in der HTTP - Abfrage - String angefordert.

REQUEST_FILENAME - Vollständiger Pfad zum Dateisystem des Servers in die Datei oder das Skript zu dieser Anforderung entspricht.

Bemerkungen:

  1. Variablen SCRIPT_FILENAME REQUEST_FILENAME und enthalten den gleichen Wert, dh der Wert von Dateinamen Feld der inneren Struktur von Apache request_rec. Der erste Name ist nur eine bekannte CGI Variablennamen , während der zweite ist eine permanente Kopie REQUEST_URI (die den Wert des Feldes uri request_rec Struktur enthält).
  2. Es ist ein spezielles Format:% {ENV: Variable} wobei variable jede Umgebungsvariable sein kann. Sie ist in internen Apache Strukturen gesucht und durch den Aufruf der getenv (wenn es nicht der Fall ist) () aus dem Apache - Server - Prozess.
  3. Es ist ein spezielles Format:% {HTTP: header} wo Header jeder HTTP - MIME-Titel sein kann. Es ist in der HTTP-Anforderung gesucht. Beispiel:% {HTTP: Proxy-Verbindung } HTTP - Header - Wert «Proxy-Verbindung:».
  4. Es ist ein spezielles Format% {LA-U: Variable} Führende Anfragen werden selbsterstellte (basierend auf URL) Subrequest den endgültigen Wert der Variablen zu bestimmen. Verwenden Sie diese Option, wenn Sie eine Variable für die Änderung verwenden möchten, die wirklich später in jeder Phase der API bestimmt, und somit ist in dieser Phase nicht zur Verfügung. Zum Beispiel, wenn Sie konvertieren möchten, bzw. der Variablen REMOTE_USER (Datei httpd.conf) Server - Kontext, müssen Sie verwenden% {LA-U: REMOTE_USER} , weil diese Variable in den Berechtigungs Phasen festgelegt , die nach der URL Übersetzung Phase kommen , in dem die Arbeits mod_rewrite. Auf der anderen Seite, weil der Durchführung der Arbeiten im Rahmen des Verzeichnisses mod_rewrite (.htaccess - Datei) über die Fixup Phase der API und aus diesem Grund kommen die Genehmigungsphasen vor dieser Phase können Sie es gerade% verwenden {REMOTE_USER}.
  5. Es ist ein spezielles Format:% {LA-F: Variable} , die erstellt eine interne (Dateiname-basiert) Unterabfrage den endgültigen Wert der Variablen zu bestimmen. Grundsätzlich ist es das gleiche Format wie die LA-U oben.

Startseite ohne Duplizierung

Typischerweise wird die Homepage Code physisch in der index.html oder index.php Datei befindet, aber die Website sollte auf jeder der folgenden Abfragen geöffnet werden: yoursite.ru, yoursite.ru/index.html, www.yoursite.ru und www.yoursite.ru/index .html. Aber Suchmaschinen sind vier verschiedene URL! Wenn Sie die .htaccess gilt nicht konfigurieren, wird die Suchmaschine der Index aus vier identischen Seite hinzufügen. Dies ist ein Zeichen von schlechter Qualität Website. Um dieses Problem zu vermeiden, können Sie diesen Code in .htaccess verwenden:

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

Alle Seiten werden aufgeklebten nimmt mit Code umleiten 301 zur Hauptseite - http://www.yoursite.ru/.

Verdoppelt Seiten ohne einen Schrägstrich am Ende der URL

Um die Situation von der Indizierung Seiten www.yoursite.ru/about www.yoursite.ru/about/ verhindern und wie anders, wir setzen Sie nächsten Code:

Von den Seiten der Umleitung wird ohne einen Schrägstrich auf "sleshevye" installiert werden.

  RewriteCond% {REQUEST_FILENAME}! -f
 RewriteCond% {REQUEST_URI}! (. *) / $
 RewriteRule ^ (. *) $ / $ 1 / [R = 301, L]

Das Speichern von Dateien anstelle der Öffnung

Viele haben gesehen, wenn eine Datei mit der Erweiterung zum Download versuchen, .rar Browser es im Klartext aus den Hash-Symbole öffnet. Dies bedeutet, dass der Standortserver ist nicht zwingend vorgeschrieben Speichern von Dateitypen konfiguriert, die nicht im Browser geöffnet werden soll.

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