Datei-Konfigurator .htaccess Apache-Server
.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
- Einfache Umleitung:
Redirect 301 / http://www.domainname.ru/
oderumleiten / 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 - 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
- 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
- Mit mod_rewrite:
Optionen + FollowSymLinks RewriteEngine on RewriteCond% {HTTP_HOST} ^ ihredomain \ .ru RewriteRule ^ (. *) $ Http://www.yourdomain.ru/$1 [R = permanent, L]
- 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.
- 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
- 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)
- 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]
- 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 werdenRewriteRule ^ Superdiscount / my-ebook.html /hot-to-make-million.html [L, R = 301] RewriteRule ^ Superdiscount (. *) $ /hot-offers.php [L, R = 301]
- 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.
- 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 Vergleichsmusternwir 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.
- 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]
- Ä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
- für alle auf alle Dateien in einem Verzeichnis:
leugnen von allen
- auf eine bestimmte Datei:
leugnen von allen - 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 - 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. - Verweigern des Zugriffs auf Dateien mit mehreren Arten von Erweiterungen
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:leugnen von allen 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-1251Optionen: 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 7B1safkirErstellen Sie eine neue Datei .htpasswd, die für den Benutzer user1 mit dem Kennwort einen Eintrag fügt auf der Kommandozeile angegeben -.
htpasswd .htpasswd benutzer2In 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.phpIE 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.phpDiese 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 = 1Lassen 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
Richtlinie Cache
Caching für alle Arten von DateizugriffszeitExpiresActive 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-HeaderKopf append Cache-Control "no-store, no-cache, Must-revalidate" # Der Expires-HeaderExpiresActive 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-controlCaching via .htaccess-Datei
Auflösung # Caching in diesem Ordner # Sie müssen Module wechseln # Mod_headers.c und mod_expires.c # # Cache-Control-HeaderKopf append Cache-Control "public" # Der Expires-HeaderExpiresActive 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
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
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.Für Beiträge:SecFilterEngine Off SecFilterScanPOST Off
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:
- 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).
- 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.
- 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:».
- 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}.
- 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
Kommentare
im Auge kommentierte halten , dass der Inhalt und der Ton Ihrer Nachrichten , die Gefühle von echten Menschen verletzen können, Respekt und Toleranz gegenüber seinen Gesprächspartnern, auch wenn Sie Ihr Verhalten in Bezug auf die Meinungsfreiheit und die Anonymität des Internets, ändert ihre Meinung nicht teilen, nicht nur virtuell, sondern realen Welt. Alle Kommentare werden aus dem Index, Spam - Kontrolle versteckt.