Fichier Apache-serveurs Configurateur
.htaccess (avec un point au début du nom) - il est un fichier-Configurateur le serveur Apache, qui vous permet de configurer le serveur dans des répertoires distincts (dossiers) en ne fournissant pas l' accès au fichier de configuration principal. Par exemple, pour définir des autorisations de fichiers dans le répertoire, en changeant le nom du fichier d'index indépendamment pour traiter les erreurs Apache, rediriger les visiteurs vers une page d'erreur particulière. .htaccess est un simple document texte, que le htaccess d'extension. Ce fichier se trouve généralement dans le site racine, mais vous pouvez également créer .htaccess fichiers supplémentaires pour les différents répertoires sur votre site.
Mod_rewrite - module utilisé par les serveurs Web pour convertir les URL.
Module directive Mod_rewrite
- RewriteBase
- RewriteCond
- RewriteEngine
- RewriteLock
- RewriteLog
- RewriteLogLevel
- RewriteMap
- RewriteOptions
- RewriteRule
Incarnations de la redirection via fichier .htaccess
- redirection simple:
Rediriger 301 / http://www.domainname.ru/
ourediriger / secrète http://www.site.ru/nosecret
Nous avons mis dans un fichier .htaccess ou httpd.conf pour Apache. Le premier "/" signifie que tout le site de niveau supérieur, y compris tous les sous-répertoires, sera transmis (ne pas oublier de mettre le dernier "/"). Si vous souhaitez transférer la page, en conservant l'ancien PR de la page, vous pouvez le faire:Rediriger 301 /old/old.htm http://www.you.ru/new.htm où:
/old/old.htm - chemin et le nom de l'ancienne page
http://www.you.com/new.htm - un nouveau chemin d'accès et une page nouveau nom déplacé - Redirection vers une page sur l'ip de l'utilisateur ou de demander une page spécifique (ainsi que le nom du masque).
Si l'utilisateur ip 192.152.37.125, il sera redirigé vers la page user.php:SetEnvIf REMOTE_ADDR 192.152.37.125 REDIR = "redir" RewriteCond% {REDIR} redir RewriteRule ^ / $ /user.php
- Rediriger lors de la demande de certains fichiers. Si les fichiers demandés, dont l'extension ne sont pas spécifiées dans le fichier .htaccess (gif et jpg), il est nécessaire de rediriger:
RewriteEngine On RewriteRule (gif | jpg) $ !. Index.php
- Utilisation de mod_rewrite:
Options + FollowSymLinks RewriteEngine sur RewriteCond% {HTTP_HOST} ^ yourdomain \ .ru RewriteRule ^ (. *) $ Http://www.yourdomain.ru/$1 [R = permanent, L]
- Rediriger l'expression régulière:
RedirectMatch 301 Http (*.): //www.yourdomain.ru$1 Prescrit dans le fichier .htaccess.
(. *) RedirectMatch correspond effectivement les modèles d'expression régulière après le nom de domaine. Ainsi, vous ne pouvez pas effectuer un patron sur les ^ / yourdomain.ru. Cependant, vous pouvez convertir la page avec l'extension .html aux fichiers du même nom, mais avec une extension .php:RedirectMatch 301 (. *) \ Html $ http :. //www.yourdomain.ru$1.php
Si vous voulez faire une redirection différente pour les pages individuelles, vous pouvez utiliser ce qui suit: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" - ce qui est l'équivalent de "RedirectMatch 301" string "* (Wildcard)" devrait être la dernière dans cette liste.
- Création d'une URL lisible pratique
Convertir, par exemple, www.site.ru/product.php?id=123 www.site.ru/product/123 de la manière suivante:RewriteEngine sur RewriteRule ^ produit /([^/\.]+)/?$ product.php? Id = $ 1 [L]
Dans l'exemple suivant, nous transformons www.site.ru/script.php?product=123 en www.site.ru/cat/product/123/:RewriteRule chat /(.*)/(.*)/$ /script.php?$1=$2
- Redirection vers PHP:
header ( "HTTP / 1.1 301 Moved permanente"); header ( "Location: http://www.newdomain.ru/newdir/newpage.htm"); exit ();
Naturellement, il est nécessaire de créer une page lors de l'accès qui et rediriger se produira, et placez-le sur le serveur. Et mieux sélectionner HTTP / 1.1 (au lieu de HTTP / 1.0 ou HTTP / 0.9, qui ne prend pas en charge l'hébergement virtuel)
- Rediriger tous les fichiers dans un dossier de fichiers.
Par exemple, vous ne devez plus une section du site de Super escompte et souhaitez rediriger toutes les requêtes vers le dossier / Superdiscount un seul fichier /hot-offers.php. Pour ce faire, ajoutez le code suivant à votre .htaccess.RewriteRule ^ Superdiscount (. *) /hot-offers.php $ [L, R = 301]
- Rediriger tous les dossiers sauf un fichier
Dans l'exemple suivant, tous les fichiers dans le dossier / Superdiscount seront redirigés vers le sur les fichiers /hot-offers.php sauf Courtyard /superdiscount/my-ebook.html entoure doit être redirigé vers /hot-to-make-million.htmlRewriteRule ^ Superdiscount / my-ebook.html /hot-to-make-million.html [L, R = 301] RewriteRule ^ Superdiscount (. *) /hot-offers.php $ [L, R = 301]
- Dynamic Redirect URL vers le nouveau fichier.
Cette option est utile si vous souhaitez rediriger une URL dynamique avec des paramètres nouveau fichier statique.RewriteRule ^ article.jsp? Id = (. *) $ /latestnews.htm [L, R = 301]
Alors maintenant, la demande au type de fichier http://www.kass.ws/article.jsp?id=8632 et / ou http://www.kass.ws/article.jsp?id=1245 fichier sera envoyé à l'adresse http : //www.kass.ws/latestnews.htm.
- rediriger Mass nouveaux fichiers.
Tepep passer au moment le plus difficile, quand vous avez besoin de rediriger beaucoup d'URL-s, par exemple après un changement de votre CMS. Ici, à la fois un certain nombre de problèmes. Tout d'abord, l'introduction de la nouvelle adresse dans le fichier .htaccess prendre un temps très long, et en elle-même est une activité désagréable. Deuxièmement, trop d'entrées dans le fichier .htaccess va ralentir le serveur Apache. Et troisièmement, lors d'un si grand nombre d'informations est très probable que vous allez faire une erreur quelque part. Pour cela, le meilleur moyen est d'embaucher un programmeur qui vous écrire une redirection dynamique.
L'exemple suivant est écrit en PHP, mais peut aussi être fait dans toute langue. Supposons que vous avez déménagé dans un nouveau système de liens sur votre site et tous les fichiers se terminant avec le vieux id devrait être sredirekcheny. Tout d'abord, créer la table de base de données qui contient la vieille id et une nouvelle URL pour redirection. old_id INT new_url VARCHAR (255) Ensuite, nous écrivons le code qui permettra de relier votre ancien id nouvelle URL-s
Après cela, ajoutez la ligne suivante à .htaccess:RewriteRule ^ / produit - _ ([0-9] +) php /redirectold.php?productid=$2 (*.).
puis créer un redirectold.php de fichier PHP, qui soutiendra les redirections 301:<? Php fonctionner getRedirectUrl ($ productid) { // Connexion à la base de données $ Dserver = "localhost"; $ Ddb = "mydbname"; $ Duser = "mydb_user"; $ DPASS = "mot de passe"; $ S = @mysql_connect ($ dserver, $ duser, $ DPASS) or die ( "Impossible de se connecter au serveur de base de données"); @mysql_select_db ($ ddb, $ s) or die ( "Impossible de se connecter à la base de données"); $ Query = "SELECT FROM new_url de redirections WHERE old_id =". $ ProductID; mysql_query ($ query); $ Résultat = 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 Moved permanente"); header ( "Location: $ url"); exit (); ?>
Maintenant, toutes les demandes à votre ancienne URL s causeront redirectold.php, qui trouveront la nouvelle URL et retourne une réponse 301 à votre nouveau lien.
Réachemine en fonction du temps
Lorsque vous avez besoin d'utiliser des astuces telles que le contenu de la masse en fonction du temps de webmasters toujours utiliser des scripts CGI qui produisent des redirections vers des pages spéciales. Comment cela peut être fait via mod_rewrite?
Il y a beaucoup de variables à rediriger ces conditions de TIME_xxx. En conjonction avec les modes de comparaison lexicographique particuliersnous pouvons produire en fonction du temps et redirige STRING = STRING: 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
Il fournit foo.day.html contenu lorsque demandé URL foo.html 07:00-à-19h00 et le reste du contenu de foo.night.html.
- Nous enlevons toutes les requêtes commençant "WWW".
RewriteEngine sur # pour divulguer que veulent utiliser mod_rewrite RewriteCond% {HTTP_HOST} ^ www \. (. *) [NC] RewriteRule ^ / (*.) Http :? //% 1 / $ 1 [L, R = permanent]
- Changer le extension .html en .php
Parfois, il arrive que vous avez un site web statique, mais vous avez besoin de pannes sur elle tout php-script. Pour ce faire, vous devez indiquer au serveur pour analyser cette page php-file.AddHandler application / x-httpd-php .html
Cette technique peut également être utilisée pour d'autres extensions de fichiers:AddHandler application / x-httpd-php .xml AddHandler application / x-httpd-php .asp
Refuser l'accès à un répertoire spécifique
- pour tous à tous les fichiers dans un répertoire:
deny from all
- à un fichier spécifique:
deny from all - par ip User:
Pour nier, permettre deny from all permettre de 192.152.37.125
L'accès à ce répertoire sera autorisé uniquement à l'utilisateur avec ip 192.152.37.125.Et si vous voulez contraste, séparé les utilisateurs d'interdiction d'accès IP à votre site, puis d'écrire les lignes suivantes:
pour permettre, refuser permettre de toute deny from 192.152.37.125 refuser de 123.456.177 - Options de la directive -Indexes - une interdiction de l'affichage du contenu du répertoire en l'absence du fichier d'index Parfois, vous devez vous assurer que s'il n'y a pas de fichier dans le répertoire qui est affiché par défaut, non publié une liste de fichiers dans un répertoire. Ensuite, vous pouvez ajouter la ligne suivante à .htaccess:
options de -Indexes
Dans ce cas, au lieu d'une liste de fichiers dans un répertoire visiteur recevra une erreur HTTP 403 - accès interdit. - Refuser l'accès à des fichiers avec plusieurs types d'extensions
Accès refusé aux fichiers avec l'extension * .inc, * .conf et * .cfg. Bien que la directive est, par défaut, il ne fonctionne pas avec des expressions régulières, mais peut être activée en plaçant le caractère tilde (~) dans la directive sur les options. La syntaxe est: [tilde] [espace] [dalee_vse_bez_probelov] Pour bloquer cet accès, entrez ce qui suit:deny from all RewriteRule ^ .htaccess $ - [F]
Il est généralement traduit par:
Si quelqu'un tente d'accéder au fichier .htaccess, le système doit générer une «réponse de 403 HTTP» ou code d'erreur «403 Forbidden - Vous n'êtes pas autorisé à accéder à /.htaccess sur ce serveur.Conception ^ .htaccess $ dans une expression régulière signifie:
^ - Le début de la ligne d'ancrage
$ - Fin de l' ancre de ligne
. - Expression régulière point '.' désigne un caractère méta et doit être protégé par une barre oblique inverse (backslash), si vous voulez toujours un point réel.Le nom du fichier doit être situé exactement entre le début et la fin d'ancrage. Cela garantira que seul ce nom de fichier spécifique et aucun autre va générer un code d'erreur.
[F] - une «interdiction» case spéciale (interdit).
[NC] - lettres insensibles à la casse.
[OR] - sens »ou la condition suivante.
encodage Définition
encodage Définition dans lequel "donne" les fichiers du serveur
AddDefaultCharset fenêtres-1251Options: KOI8-R, UTF-8, Windows-1251
Détermination de l'encodage des fichiers téléchargés
CharsetSourceEnc fenêtres-1251
Définition d'un mot de passe sur un répertoire en utilisant .htaccess
Pour définir un mot de passe sur le répertoire, vous pouvez utiliser le système d'authentification de base fournies dans le serveur web Apache. Créez un répertoire auquel veulent restreindre l'accès par mot de passe, le fichier .htaccess avec ces lignes directrices:AuthType Basic AuthName "Certains Nom" AuthUserFile /www/some_login/www/htdocs/some_dir/.htpasswd exiger valid-userChemin /www/some_login/www/htdocs/some_dir/.htpasswd est le chemin vers le fichier de mot de passe sur le disque de notre serveur. Par exemple, si vous placez le fichier .htpasswd (ce sont les mots de passe) dans le répertoire de la maison, où vous vous trouvez, en se connectant sur le serveur FTP, le chemin d'accès à ce fichier se penchera /www/some_login/www/htdocs/some_dir/.htpasswd où some_login - Votre nom d'utilisateur. La directive AuthUserFile pour spécifier un chemin absolu vers le login / mot de passe, que nous allons créer plus tard. Si vous créez un fichier .htaccess sur votre ordinateur, plutôt que directement sur le serveur en utilisant un éditeur de texte, accorder une attention particulière au fait que le .htaccess doit être transmis via FTP est strictement un mode texte (ASCII).
Créez un fichier de mot de passe. le fichier de mot de passe doit contenir des lignes de la forme connexion: mot de passe. Le mot de passe doit être crypté en utilisant l'algorithme MD5. Une façon de créer un tel fichier - utiliser le programme fourni avec Apache - htpasswd (sur notre serveur, il est dans le répertoire / usr / local / apache / bin, chemin complet - / usr / local / apache / bin / htpasswd).
Considérez comment créer un fichier de mot de passe dans unix shell directement sur le serveur. Rendez-vous sur la coque et exécutera les commandes suivantes:
htpasswd .htpasswd -mbc user1 7B1safkir- Créer un nouveau .htpasswd de fichier, ce qui ajoute une entrée pour l'utilisateur user1 avec le mot de passe spécifié sur la ligne de commande.
htpasswd .htpasswd user2- Ajouter à la .htpasswd utilisateur fichier user2 déjà existant, et le mot de passe est entré manuellement en réponse à une demande pour le programme.
Après avoir obtenu des institutions de tous les logins besoin de télécharger le fichier. Sur les autres méthodes de définition des mots de passe sur les pages
Définissez vos propres pages d'erreur
Demandez à votre propre page d'erreur peut être comme suit:ErrorDocument 404 http://www.site.ru/404.phpIE ignore la taille de la page est inférieure à 512 octets.
répertoires d'indexation et sous-répertoires
Pour éviter l'indexation par les moteurs de recherche et répertoires sous-répertoires, vous devez vous inscrire cette ligne, par exemple:DirectoryIndex index.phpCette directive spécifie le fichier qui sera appelé lors de l'accès au répertoire sans spécifier un nom de fichier.
Vous pouvez spécifier plusieurs pages d'index. Lorsque vous demandez un répertoire, ils seront recherchés dans l'ordre dans lequel sont énumérés dans la directive DirectoryIndex. Si aucun fichier index.html est trouvé, il va rechercher le fichier index.php, etc.
DirectoryIndex index.html index.php index.shtml
Personnellement, je préfère transmettre aux répertoires vides ou sur la page d'accueil, ou sur toute autre page appropriée. Par exemple, le répertoire peut être transmis à www.site.ru/pic/~~V www.site.ru.
Protéger vos images de téléchargement
Très souvent, il arrive que les webmasters copie flagrante du contenu de votre site, ainsi que des dessins et peintures sont chargés avec votre même serveur. Cela crée un trafic supplémentaire qui conduit souvent à plusieurs problèmes. Comment se protéger contre ces webmasters et d'empêcher les robots des moteurs de recherche d'indexer l'image? Il est simple:RewriteEngine sur RewriteCond% {HTTP_REFERER}. ! RewriteCond% {HTTP_REFERER} ^ http // :? (. [. ^] + \) Site \. [NC] RewriteCond% {HTTP_REFERER}! Google \. [NC] RewriteCond% {HTTP_REFERER}! Rechercher \ 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 - l'image à afficher au lieu d'images réelles. Je recommande cette image afficher votre logo et un lien vers votre site Web.
Un autre varinat refuser l'accès à des sites non autorisés avec des photos:
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 = 1Commande Autoriser, Refuser Allow from env = local_ref
Les moteurs de recherche et toutes sortes de scanners kollosalny créer du trafic vers votre site. Le bloc de code suivant permettra bots de bloquer l'accès au site.
RewriteCond% {HTTP_USER_AGENT} (Googlebot | Slurp | spider | Twiceler | Heritrix | Combinez | appie | boitho | e-SocietyRobot | Exabot | Nutch | OmniExplorer | MJ12bot | ZyBorg / 1 | Demandez \ Jeeves | AskJeeves | ActiveTouristBot | JemmaTheTourist | agadine3 | BecomeBot | cluster-Search-Bot | MSIECrawler | freefind | galaxie | GenieKnows | INGRID | grub-client | MojeekBot | NaverBot | NetNose-Crawler | OnetSzukaj | PrassoSunner | Asterias \ Crawler | THUNDERSTONE | GeorgeTheTouristBot | VoilaBot | Vagabondo | fantomBro navig ateur | stealthBrowser | cloakBrowser | fantomCrew \ Browser | Girafabot | Indy \ Library | Intelliseek | Zealbot | Windows \ 95 | ^ Mozilla / 4 \ .05 \ \ [fr \] $ | ^ Mozilla / 4 \ .0 $) [NC] RewriteRule ^ de $ (*.) - [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 ^ de $ (*.) - [F]
Suivi des résultats à votre fichier robots.txt
Pour avoir plus d'informations sur la visite des moteurs de recherche, il est utile d'avoir plus d'informations sur l'accès au fichier robots.txt Pour oganizovat cela, «.htaccess» doit avoir les entrées suivantes:RewriteEngine sur Options + FollowSymlinks RewriteBase / RewriteRule ^ robots.txt $ /robot.php?%{REQUEST_URI}Maintenant, lorsque vous demandez le fichier 'robots.txt' notre RewriteRule redirige le visiteur (robot) pour traiter la demande de robot.php script. En outre, la variable passé au script, qui sera traitée en fonction de vos besoins. 'REQUEST_URI' indique le nom du fichier demandé. Dans cet exemple - 'robots.txt'. Le script lit le contenu du 'robots.txt' et l'envoyer à un navigateur Web ou une araignée de moteur de recherche. Ainsi, nous pouvons supposer hits et les visiteurs de fichiers journaux.
PHPSESSID
Pour désactiver l'ajout de l'URL PHPSESSID à insérer au début de index.php:
ini_set ( "session.use_trans_sid", 0);
Ou monter dans .htaccess:
php_flag session.use_trans_sid Off
Si vous faites tout ce bruit compliqué, prêt à l'emploi
directive cache
Caching pour tous les types de temps d'accès aux fichiersExpiresActive sur "Accès plus 600 secondes" ExpiresDefaultCaching pour tous les types de fichiers par date de modification
ExpiresActive sur "Modification plus 600 secondes" ExpiresDefaultCaching pour certains types de fichiers
texte ExpiresByType / css "modification plus 600 secondes" ExpiresByType image / jpeg "modification plus 600 secondes" ExpiresByType image / gif "modification plus 600 secondes" l'image ExpiresByType / x-ico "modification plus 600 secondes" ExpiresByType image / png "modification plus 600 secondes"
Ban cache avec le serveur Apache
Ouvrez le fichier de configuration du serveur Apache httpd.conf et supprimez les lignes suivantes:
LoadModule expires_module / mod_expires.so LoadModule headers_module / mod_headers.so ... AddModule mod_expires.c AddModule mod_headers.c
Entrez les informations suivantes dans .htaccess:
# Ban cache dans ce dossier # Vous devez passer des modules # Mod_headers.c et mod_expires.c # # Tête Cache-Controlappend-tête Cache-Control "no-store no-cache, doit-revalidate" # La tête ExpiresExpiresActive Sur ExpiresDefault "maintenant"
têtes obligatoires sont envoyés automatiquement, et les écrire spécifiquement est plus nécessaire en PHP - le cache est déjà éteint!
Description de tête http-cache Cache-controlCaching via un fichier .htaccess
Résolution # mise en cache dans ce dossier # Vous devez passer des modules # Mod_headers.c et mod_expires.c # # Tête Cache-Controlappend-tête Cache-Control "public" # La tête ExpiresExpiresActive Sur «Accès plus 1 heures" ExpiresDefault #ExpiresDefault "Accès plus 10 ans»
Caching des fichiers javascript en utilisant le fichier .htaccess
"Accès plus 3 jours" ExpiresDefault
Soyez prudent lorsque la mise en cache, depuis quand un fichier change, l'utilisateur peut obtenir la nouvelle version seulement après 3 jours!
Comment faire des pages HTML pour gérer php-code?
Prescrire dans votre fichier .htaccess les lignes suivantes:RemoveHandler .php .htm .html AddHandler application / x-httpd-php .php .htm .html
Comment héberger plusieurs sites sur le même hébergement mutualisé?
Pour placer deux ou plusieurs sites sur le même hébergement mutualisé, malgré vous mène au plan tarifaire le nombre de domaines doit être dans le fichier ".htaccess" prescrire les lignes suivantes:
RewriteEngine On RewriteRule ^ newdirectory / - [L] RewriteCond% {HTTP_HOST} Newdomain.ru (www.)? [NC] RewriteRule (. *) Newdirectory / 1 $ [L]
Où:
newdirectory / - dossier, qui sera basé sur le deuxième site
newdomain.ru - le domaine pour lequel nous faisons la redirection
Pages de recherche dans plus d'un répertoire
Parfois, il est nécessaire pour permettre au serveur Web pour rechercher la page dans plus d'un répertoire.
RewriteEngine sur # Tout d'abord essayer de le trouver à l'emplacement spécifié / ... # ... Et si trouvé puis terminer la recherche: RewriteCond / votre / docroot / dir1 /% {REQUEST_FILENAME} -f RewriteRule ^ (. +) / Votre / docroot / dir1 / 1 $ [L] # Deuxièmement - essayer de le trouver dans le pub / ... # ... Et si trouvé puis terminer la recherche: RewriteCond / votre / docroot / dir2 /% {REQUEST_FILENAME} -f RewriteRule ^ (. +) / Votre / docroot / dir2 / 1 $ [L] # Sinon, poursuivez pour d'autres directives RewriteRule ^ (+.) - [PT]
Les hôtes de l'utilisateur virtuel
Si vous voulez fournir des adresses www.subdomain.domain.ru pour les utilisateurs de pages, vous pouvez utiliser l'ensemble suivant des règles de conversion http://www.subdomain.domain.ru/path le chemin / home / subdomain / chemin intérieur:
RewriteEngine sur RewriteCond% {HTTP_HOST} ^ www \. [^.] + \. Ru $ $ 1 [C] RewriteRule ^ (. +)% {HTTP_HOST} \. Ru (. *) 2 / Accueil / $ 1 $ RewriteRule ^ www \. (+ [^.])
fichiers endommagés lors téléchargés vers le serveur
Si le transfert de fichiers via le formulaire (si spécifié enctype = "multipart / form-data") des données binaires sont endommagés, inscrivez-vous dans la directive /cgi-bin/.htaccess:CharsetRecodeMultipartForms Off.
Erreur de chargement des fichiers SWF.
Erreurs lors de l'accès aux pages qui contiennent des mots-clés,
tels que $ _REQUEST
Cela peut être dû au module installé
Messages d'erreur possibles:
interdit
Vous n'êtes pas autorisé à accéder à /adm/index.php sur ce serveur. En outre, une erreur 404 Not Found a été rencontrée lors de la tentative d'utiliser un ErrorDocument pour traiter la demande.Pour les messages:SecFilterEngine Off SecFilterScanPOST Off
SecFilterEngine Off SecFilterScanPOST Off
Une protection optimale est seulement retiré du dossier où il est nécessaire, sans enlever la protection de l'ensemble du site.
Variables de serveur
Ce type de variable% {NOM_DE_VARIABLE}
NOM_DE_VARIABLE qui peut être une chaîne pris dans la liste suivante:
têtes HTTP: | Se connecter et demande: | |
---|---|---|
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 |
|
serveur interne: | système: | spéciale: |
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 TIME |
api_version THE_REQUEST REQUEST_URI REQUEST_FILENAME IS_SUBREQ |
Ces variables sont pleinement compatibles avec un nom similaire HTTP MIME-têtes, et Apache variables de serveur ou de champs de systèmes Unix struct tm. Ceux qui sont spéciaux à mod_rewrite comprennent:
IS_SUBREQ - contiendra le texte «vrai» si la demande est en cours d' exécution d' un sous - requête, «faux» dans l'autre cas. Sous-requêtes peuvent être générés par des modules qui ont besoin de traiter les fichiers supplémentaires ou URI pour exécuter leurs propres tâches.
Api_version - Cette version de l'API module Apache (interface interne entre le serveur et le module) dans l'ensemble de serveur actuel tel que défini dans include / ap_mmn.h. version de l'API du module correspond à la version d'Apache (pour la version d'Apache 1.3.14, il est par exemple 19990320: 10), mais il est des auteurs de modules essentiellement intéressants.
THE_REQUEST - Gamme complète de la requête HTTP envoyée par le serveur de navigateur ( par exemple, «GET /index.html HTTP / 1.1» ). Il ne comprend pas les en-têtes supplémentaires envoyées par le navigateur.
REQUEST_URI - La ressource demandée dans la chaîne de requête HTTP.
REQUEST_FILENAME - chemin complet vers le système de fichiers du serveur vers le fichier ou le script correspondant à cette demande.
Remarques:
- Variables SCRIPT_FILENAME REQUEST_FILENAME et contiennent la même valeur, à savoir, la valeur du champ de la structure interne de request_rec Apache filename. Le premier nom est juste un nom de variable CGI bien connu alors que le second est une copie permanente REQUEST_URI (qui contient la valeur de l'uri de champ de structure request_rec).
- Il y a un format spécial:% {ENV: variable} , où variable peut être une variable d'environnement. Il est demandé dans les structures internes d' Apache et (s'il n'y a pas) en appelant le getenv () à partir du processus du serveur Apache.
- Il y a un format spécial:% {HTTP: header} où en- tête peut être un titre HTTP MIME-nom. Il est recherché dans la requête HTTP. Exemple:% {HTTP: Proxy-Connection } HTTP header valeur «Proxy-Connection:».
- Il y a une spéciale forme% {LA-U: variable} demandes Leading sont générés en interne (basé sur l' URL) sous-requête pour déterminer la valeur finale de la variable. Utilisez cette fonction lorsque vous souhaitez utiliser une variable pour le changement, qui a vraiment déterminé plus tard dans une phase quelconque de l'API, et ne sont pas disponibles à ce stade ainsi. Par exemple, lorsque vous voulez convertir, respectivement, du contexte du serveur REMOTE_USER variable (fichier httpd.conf), vous devez utiliser% {LA-U: REMOTE_USER} car cette variable est définie dans les phases d'autorisation qui viennent après la phase de traduction de l' URL dans laquelle le mod_rewrite travail. D'autre part, en raison de la mise en œuvre des travaux dans le cadre du mod_rewrite d'annuaire (fichier .htaccess) via la phase Fixup de l'API et de ce fait, les phases d'autorisation viennent avant cette phase, vous pouvez simplement utiliser% {REMOTE_USER}.
- Il y a un format spécial:% {LA-F: variable} qui crée un (basé filename-) sous-requête interne pour déterminer la valeur finale de la variable. Fondamentalement, il est le même format que le LA-U ci-dessus.
Accueil sans duplication
En règle générale, le code de la page d'accueil se trouve physiquement dans le fichier index.html ou index.php, mais le site doit être ouvert sur l'une des requêtes: yoursite.ru, yoursite.ru/index.html, www.yoursite.ru et www.yoursite.ru/index .html. Mais les moteurs de recherche sont quatre URL différente! Si vous ne configurez pas le .htaccess est vrai, le moteur de recherche va ajouter à son index de quatre pages identiques. Ceci est un signe d'un site de qualité médiocre. Pour éviter ce problème, vous pouvez utiliser ce code dans .htaccess:
Options + FollowSymLinks RewriteEngine sur 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]
Toutes les pages seront collés-takes rediriger avec le code 301 à la page principale - http://www.yoursite.ru/.
Doubles pages sans une barre oblique à la fin de l'URL
Pour éviter que la situation l'indexation des pages www.yoursite.ru/about~~number=plural www.yoursite.ru/about/ et comment différent, nous vous mettons le code suivant:
A partir des pages de la redirection sera installé sans une barre oblique sur "sleshevye".
RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_URI}! (. *) / $ RewriteRule ^ (. *) $ / 1 $ / [R = 301, L]
Enregistrement de fichiers au lieu de l'ouverture
Beaucoup ont vu en essayant de télécharger un fichier avec l'extension .rar navigateur ouvre en clair à partir des symboles de hachage. Cela signifie que le serveur de site est pas configuré épargne obligatoire des types de fichiers qui ne doivent pas être ouverts dans le navigateur.
AddType application / octet-stream .rar .doc .mov .avi .pdf .xls .mp4
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.