Cómo hacer un banner dinámico en Photoshop. Banner animado en Photoshop. Hacer tu propio banner publicitario

Probablemente sabes qué, todo configuraciones básicas Los servidores Apache se encuentran en el archivo httpd.conf, al que no siempre se puede acceder. Por ejemplo, si el hosting utiliza servidor virtual, cuando un servidor atiende a más de cien sitios, entonces es imposible permitir que el propietario de un sitio cambie la configuración de todo el servidor, ya que esto afectará a todos los demás sitios. Sin embargo, Web servidor apache Permite la configuración del tiempo de ejecución por directorio utilizando archivos .htaccess.

Advertencia:
En el servidor WEB Apache, los archivos con un punto al principio del nombre a menudo no aparecen en la lista y no se muestran a través de clientes FTP.

Para control total sobre dichos archivos que necesita acceso físico al servidor o completo cliente remoto. A través de FTP trabajará a ciegas, enviando comandos al servidor a través de línea de comando(Creo que el comando "ayuda" en la línea de comando no será superfluo). El archivo .htaccess es un archivo de configuración que permite personalizar el funcionamiento del servidor a nivel de directorios individuales: establecer derechos de acceso a archivos en directorios, cambiar los nombres de los archivos de índice, procesar códigos de respuesta de forma independiente protocolo HTTP, modificar las direcciones de las páginas solicitadas.

Nota:
Archivo .htaccess se puede colocar en cualquier directorio. Las directivas de este archivo afectan a todos los archivos en el directorio actual y a todos sus subdirectorios (a menos que estas directivas sean anuladas por directivas de archivos .htaccess en subdirectorios).
Los cambios realizados en los archivos .htaccess entran en vigor inmediatamente y no requieren reiniciar el servidor, a diferencia de los cambios realizados en el archivo de configuración principal httpd.conf.
Para poder utilizar archivos .htaccess, se requieren las configuraciones apropiadas en el archivo de configuración principal httpd.conf, donde se encuentran las directivas que permitirá que el archivo .htaccess anule la configuración del servidor web en el catálogo. La lista de estas directivas está especificada por la directiva AllowOverride.

La directiva AllowOverride puede incluir una o una combinación de las siguientes directivas:
AuthConfig, FileInfo, Índices, Límite, Opciones, Todo, Ninguno
Para otorgar a las directivas del archivo .htaccess los máximos derechos para modificar directivas, el valor de la directiva AllowOverride en el archivo httpd.conf debe ser igual a Todo. Este es el valor predeterminado.
Permitir anular todo
Puede evitar la anulación de cualquier directiva en los archivos de configuración.htaccess utilizando el valor Ninguno:
Permitir anulación ninguna

Comentario:
El nombre del archivo de configuración se puede cambiar y, por ejemplo, no llamarlo .htaccess, sino access.conf. El nombre de este archivo está determinado por la directiva AccessFileName en el archivo httpd.conf. No se recomienda cambiar el nombre del archivo de configuración .htaccess, porque esto puede complicar mayor apoyo servidor.

Sintaxis.htaccess

Antes de ver los ejemplos, veamos la sintaxis de las directivas en los archivos .htaccess.

Las rutas a archivos y directorios deben especificarse como direccionamiento absoluto de la raíz partidista.
Por ejemplo:
/home/users/vasya999/public_html/a_content/masters/

Al especificar URL absolutas, se deben especificar protocolos, por ejemplo:
Redirigir / http://www.site.ru

En los archivos .htaccess, no se permiten espacios en las rutas de acceso a los archivos ni en los nombres de los archivos mismos, porque esto da como resultado la generación de un código de respuesta 500 - error de configuración del servidor: " Servidor interno Error".

Ejemplos de uso de .htaccess

Páginas de índice

Los archivos de índice son los archivos que se descargan de forma predeterminada si no se especifica ningún recurso en la URL. Por ejemplo:
http://site.ru/: el recurso no está especificado (archivo, página), pero el servidor aún cargará algo como index.html.

Pueden surgir situaciones en las que sea necesario cambiar la composición de los archivos de índice, por ejemplo, si necesita una página de índice index.php, pero básicamente archivo de configuración httpd.conf no está registrado. Este problema se puede resolver utilizando el archivo .htaccess, en el que debe crear una directiva DirectoryIndex, que enumerará los nombres de las páginas de índice:
DirectorioIndex index.php index.html index.htm
Al solicitar un directorio sin especificar un nombre de archivo, primero buscará una página llamada index.php y, si no la encuentra, entonces index.html, etc. hasta el final de la lista hasta encontrar y abrir la página correspondiente.

Prohibición de mostrar el contenido del directorio si no hay un archivo de índice

A menudo es necesario evitar la visualización de una lista de archivos en un directorio si no está especificado o falta. archivo de índice.Por ejemplo, prohibir mostrar el contenido de un directorio con imágenes. Si no se establece dicha prohibición, el usuario que acceda directamente a dicho directorio recibirá una lista de todas las imágenes. Pero agregaremos una directiva.
Opciones –Índices

Procesamiento de códigos de respuesta del servidor web

Ningún sitio web está inmune a los errores. Mayoría error común está siguiendo un enlace a una página inexistente. En este caso, Apache genera un código de respuesta 404 y muestra una página de error generada automáticamente. Disponibilidad páginas inexistentes Da una mala impresión a los visitantes del sitio. Esta impresión puede suavizarse si en cambio páginas estándar, sustituto paginas propias con un mensaje de error. La directiva ErrorDocument es responsable de asignar páginas que manejan códigos de respuesta HTTP.
ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 "Prohibido"
Después de la directiva ErrorDocument, debe especificar el código de respuesta y la página a la que se debe redirigir al visitante cuando se produzca este código de respuesta.

Además, en lugar de la dirección de la página, puede especificar una respuesta de texto simple entre comillas.

Descifrado de varios códigos de respuesta del servidor (códigos de estado de respuesta HTTP):
Error 401: la solicitud requiere autenticación de usuario (no autenticada).
Error 403: el acceso al recurso solicitado está prohibido (Prohibido).
Error 404: el documento solicitado no se encuentra en el servidor (No encontrado).
Error 500: error de configuración del servidor o programa externo(Error Interno del Servidor).

Permitir o no permitir la ejecución de código PHP

Permiso de ejecución. Normalmente el código PHP en HTML se ejecuta en archivos con extensiones php. A veces surgen situaciones en las que es necesario ejecutar código PHP en archivos con diferente extensión. En este caso, puede indicarle al servidor web que ejecute código PHP no solo en archivos con extensión php, pero también en archivos con extensión html.
RemoveHandler .html .htm Aplicación AddType/x-httpd-php .php .htm .html .phtml
La primera línea elimina el controlador de archivos de extensiones html y htm, y la segunda línea le dice al servidor que use htm y controlador html PHP.

Prohibición Ejecución PHP, por ejemplo en un catálogo con imágenes:
motor php_flag 0 RemoveHandler .phtml .php .php3 .php4 .php5 AddType text/html .phtml .php .php3 .php4 .php5
- protección básica contra ataques de carga de shell.

Configurar la codificación en el servidor.

La codificación especificada se envía al navegador en el encabezado Content-Type y permitirá que el navegador del cliente cambie automáticamente a la codificación requerida.
Agregar caracteres predeterminados utf-8

Configurar la codificación de archivos descargados

Al cargar archivos al servidor, puede especificar en qué codificación el servidor debe esperar el archivo.
CharsetSourceEnc ventanas-1251

Deshabilitar la directiva MultiViews

La opción MultiViews habilitada en el hosting puede causar problemas inesperados, por ejemplo, mostrar páginas de sitios inexistentes o falta de acceso a las existentes. Digamos que hay una página en el sitio con la dirección http://www.sait.ru/down.php, y si los visitantes van al directorio inexistente http://www.sait.ru/down/, entonces la opción MultiViews habilitada sustituirá el archivo down.php. Sin embargo, la sustitución no se completará por completo: rutas a imágenes, hojas de estilo, etc. se ingresará incorrectamente. Es decir, la página se mostrará con distorsiones. Para suprimir este comportamiento de Apache, la opción MultiViews debe estar deshabilitada.
Opciones -Vistas múltiples

Denegar el acceso a archivos

Para evitar que los visitantes accedan archivos de servicio desde la ventana del navegador, puede denegar el acceso a dichos archivos. Para hacer esto, use la directiva Denegar y la directiva Permitir permiso de acceso.
Nota
El uso de las directivas Deny y Allow solo controla el acceso a archivos desde el navegador o desde otro programa cliente. Estas prohibiciones no se aplican a los scripts del servidor.
Denegar el acceso a archivos desde el navegador Denegar de todos
Al utilizar dicha directiva, se denegará el acceso desde el navegador a todos los archivos y directorios del directorio actual. Denegar el acceso a un archivo específico, por ejemplo, aquí se deniega el acceso solo a los archivos llamados config.php
Negar de todos

Denegar el acceso a archivos de extensión inc
Negar de todos

Para denegar el acceso a archivos con varios tipos de extensiones, puede utilizar expresiones regulares:
Negar de todos

Acceso a archivos de extensión incluida, conf y cfg

O utilice la construcción FilesMatch:
Orden permitir, negar Denegar de todos Satisfacer todos
Está prohibido el acceso a archivos cuyo nombre comience con ".ht" (punto, luego ht, luego lo que sea).

Denegar o permitir el acceso desde una dirección IP o subred específica

Orden denegar, permitir
Denegar desde 100.111.222.70 133.252.0.0/24

Permitir el acceso solo desde una dirección IP específica
Orden denegada, permitir Denegar de todos
Permitir desde 100.111.222.70
La directiva Orden le permite especificar el orden en que se ejecutarán las directivas. Primero se ejecuta la directiva de denegación de acceso (Deny) y luego se permite el acceso a la dirección IP 100.111.222.70 (Permitir). Si en la primera línea cambia el orden de las directivas a Orden permitir, denegar, entonces no se abrirá el acceso a la dirección IP 100.111.222.70, porque La directiva Deny ejecutada en último lugar anulará la directiva Allow.

Nota:
Cabe señalar que permitir el acceso desde dirección IP específica a veces puede que no funcione. Por ejemplo, si el hosting tiene instalado un servidor proxy de caché inverso. Si las directivas de permiso de acceso no funcionan, entonces debe comunicarse con el servicio sobre este problema. apoyo técnico alojamiento.

Redirigir a otra dirección (redireccionar)

A menudo surgen problemas cuando todas las solicitudes de dirección específica debe ser redirigido a otra dirección. Esto se puede hacer usando las directivas Redirect y RedirectMatch. Informan que el recurso en la URL solicitada no está disponible e indican la dirección a la que debe dirigirse.

Usando la directiva Redirect, el servidor envía el encabezado correspondiente al navegador y luego el navegador lo redirecciona.

Redirección global a una nueva dirección
Redirigir / http://www.site.ru/

Redirección al acceder a un archivo específico
Redirigir /books/index.php http://www.site.ru/new/

Redirección al acceder a cualquier página del catálogo.
RedirectMatch /books/.* http://www.site.ru/new/

Redirección al acceder a cualquier página del sitio.
RedirectMatch /.* http://www.site2.ru/

También puede utilizar una redirección condicional, por ejemplo, al ingresar a un sitio con www (www.site.ru) o un subdominio "sub.site.ru", debe redirigir al dominio principal sin www:
RewriteCond %(SERVER_NAME) ^www\.site\.ru RewriteCond %(SERVER_NAME) (www\.)?sub\.site\.ru RewriteRule ^(.*)$ http://site.ru/$1

O luchar contra los robots malos:
RewriteCond %(HTTP_USER_AGENT) (crawler|spider|scraper) RewriteCond %(HTTP_USER_AGENT) (Excite|360Spider|haosou|MJ12bot) #No hay nadie en casa
RewriteRule ^(.*)$ - #o generalmente prohibido
#ReescribirRegla ^(.*)$ -

Si está interesado en configurar los modos del servidor WEB a través del archivo .htaccess, lea la documentación del servidor web Apache sobre el módulo mod_rewrite y .htaccess.

Para poder utilizar .htaccess, se requieren los ajustes correspondientes de la configuración principal archivo apache - httpd.conf .
Permitir anulación. Se puede instalar tanto para todo el servidor (globalmente) como para un directorio separado.

La directiva AllowOverride puede incluir una o una combinación de las siguientes directivas: Todo, Ninguno, AuthConfig, FileInfo, Índices, Límite, Opciones.

Permitir anular todo

Sintaxis.htaccess

redirigir /empresa http://www.newsite.com/newcompany
redirigir /foro http://www.newsite.com/newforum

SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR= "redir"
RewriteCond %(REDIR) redirigir
Reescribir regla ^/$ /only_for_you.html

DirectoryIndex index.html index.php índice x.shtml

EliminarHandler.html.htm
Aplicación AddType/x-httpd-php .php .ht m .html .phtml

Manejo de errores de Apache

Documento de error 401 /401.html
Documento de error 403 /403.html
Documento de error 404 /404.html
Documento de error 500 /500.html






Opciones -Índices

AddDefaultCharset windows-1251

CharsetSourceEnc ventanas-1251

Denegar el acceso a todos los archivos

negar de todos

orden denegar, permitir
negar de todos
permitir desde 195.135.232.70

negar desde 195.135.232.70

[Error: Marcado no válido irreparable(" ") en la entrada. El propietario debe corregirlo manualmente. Contenido sin procesar a continuación.]

Para poder utilizar .htaccess, se requieren las configuraciones apropiadas en el archivo de configuración principal de Apache:httpd.conf.
El archivo httpd.conf debe contener directivas que permitirán que el archivo .htaccess anule la configuración del servidor web en el directorio. Esta directiva se llama Permitir anulación. Se puede instalar tanto para todo el servidor (globalmente) como para un directorio separado.

La directiva AllowOverride puede incluir una o una combinación de las siguientes directivas: Todo, Ninguno, AuthConfig, FileInfo, Índices, Límite, Opciones.

Para otorgar los máximos derechos a las directivas de los archivos .htaccess, debe configurar lo siguiente en httpd.conf:

Permitir anular todo

Sintaxis.htaccess

Antes de ver los ejemplos, veamos la sintaxis de las directivas en los archivos .htaccess.


  • Las rutas a archivos y directorios se deben especificar desde la raíz del servidor, por ejemplo, /pub/home/server1/html/

Si no conoce la ruta desde la raíz del servidor, puede averiguarla preguntándole al administrador del servidor, o puede buscarla usted mismo ejecutándola en el sitio web. función PHP-phpinfo(). Se mostrará configuración PHP en forma de tablas moradas. En ellos, debe encontrar la variable doc_root y observar su valor; esta será la ruta desde la raíz del servidor hasta su directorio principal.


  • Los nombres de dominio deben incluir protocolos, por ejemplo:


Ejemplos de uso de .htaccess


Redirección global (redirect) a otra dirección:

Redirigir / http://www.newsite.ru

Redirección (redirect) sólo al solicitar determinadas páginas:

redirigir /empresa http://www.newsite.com/newcompany
redirigir /foro http://www.newsite.com/newforum

Al solicitar páginas de los directorios de la empresa y del foro, será redirigido a nuevas direcciones.

Redirigir (redirigir) solo a los visitantes con una dirección IP específica:

SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR="redir"
RewriteCond %(REDIR) redirigir
Reescribir regla ^/$ /only_for_you.html

Si el visitante tiene una dirección IP de 192.145.121.1, se le abrirá la página only_for_you.html.

Cambiar el nombre de la página de índice:

DirectorioIndex index.html index.php index.shtml

Puede especificar varias páginas de índice. Cuando se consulta un directorio, se buscará en el orden en que aparecen en la directiva DirectoryIndex. Si no se encuentra el archivo index.html, se buscará en el archivo index.php, etc.

Ejecutar código PHP en archivos HTML

EliminarHandler.html.htm
Aplicación AddType/x-httpd-php .php .htm .html .phtml

Al agregar estas líneas a .htaccess, le indicará al servidor que ejecute instrucciones PHP no sólo en archivos con extensiones *.php y *.phtml, sino también en archivos con extensiones *.htm y *.html.

Manejo de errores de Apache

Documento de error 401 /401.html
Documento de error 403 /403.html
Documento de error 404 /404.html
Documento de error 500 /500.html

Cuando se producen estos errores, el visitante será redirigido a páginas especialmente creadas.


  • Error 401: autorización requerida.

  • Error 403: el usuario no ha sido autenticado, el acceso está denegado (prohibido).

  • Error 404: documento no encontrado.

  • Error 500: error interno del servidor.

Prohibición de mostrar el contenido del directorio si no hay un archivo de índice

Opciones -Índices

Determinar la codificación en la que el servidor “envía” archivos

AddDefaultCharset windows-1251

Determinar la codificación de los archivos descargados

CharsetSourceEnc ventanas-1251

Denegar el acceso a todos los archivos

negar de todos

Se deniega el acceso a todos los archivos y directorios del directorio actual.

Permitir el acceso solo desde una dirección IP específica

orden denegar, permitir
negar de todos
permitir desde 195.135.232.70

La línea order deny,allow especifica el orden en el que se deben ejecutar las directivas. La directiva de denegación de acceso se ejecuta primero y luego se permite el acceso solo para la dirección IP 195.135.232.70. Si en la primera línea cambiamos el orden de las directivas para ordenar permitir, denegar y luego acceder para dirección IP dada no se abrirá, ya que la directiva denegar ejecutada en último lugar anulará las acciones de la directiva permitir.

Denegar el acceso desde una dirección IP específica

negar desde 195.135.232.70

Denegar el acceso a un archivo específico


negar de todos

El acceso de visitantes a los archivos config.php está prohibido. Esta prohibición no se aplica a los scripts del servidor web. Seguirán teniendo acceso a este archivo.

Denegar el acceso a archivos con una extensión específica


negar de todos

Aquí está prohibido el acceso a archivos con la extensión *.conf. Directiva , al especificar nombres de archivos, permite el uso de caracteres comodín.

? - cualquier carácter individual
* - cualquier secuencia de caracteres, excluyendo el carácter / (barra diagonal)

Denegar el acceso a archivos con varios tipos de extensiones


negar de todos

Está prohibido el acceso a archivos con extensión *.inc, *.conf y *.cfg. Aunque la directiva , por defecto, no funciona con expresiones regulares, pero se pueden habilitar poniendo el carácter de tilde (~) en las opciones de la directiva. La sintaxis es la siguiente:
[tilde] [espacio] [más_todos_sin_espacios]

Establecer una contraseña para un directorio

AuthName "Página de administración"
Tipo de autenticación básico
AuthUserFile /pub/home/server/.pass
requerir usuario válido

Fecha: 2009-05-18

Probablemente al cargar varios guiones o simplemente te encontraste con un archivo .htaccess de este tipo en el servidor. ¡Tenga en cuenta que tener un punto delante es obligatorio! Si no ve este archivo, pero sabe que debería estar allí, lo más probable es que no se muestren en la configuración de Windows. archivos ocultos. Puedes solucionar este problema fácilmente yendo al menú. Herramientas/Opciones de carpeta/Ver/Archivos y carpetas ocultos. Aquí colocamos el interruptor en la posición Mostrar archivos y carpetas ocultos. Haga clic en Aplicar, Aceptar. O mirar de alguna manera gestor de archivos, por ejemplo yo uso comandante total y te lo recomiendo.

Muchos, incluso los webmasters avanzados, no siempre saben qué significa este archivo, cómo trabajar con él y, por lo tanto, no pueden utilizar todas las funciones disponibles.

Veamos el propósito y el uso..htaccess

Archivo .htaccess ( Tenga en cuenta que el primer carácter del nombre del archivo es un punto) se utiliza para controlar el servidor web Apache desde el lateral usuario final alojamiento. Usted coloca directivas en este archivo que el servidor web acepta y procesa, realizando además acciones de acuerdo con la configuración realizada por el usuario.

El archivo .htaccess se puede colocar en el directorio raíz del servidor web (justo en el directorio public_html), en cuyo caso las directivas de dicho .htaccess son válidas en todo el servidor web. Además, .htaccess se puede ubicar en un subdirectorio (carpeta) específico del servidor, y luego las directivas que se especifican en este archivo "anulan" la acción de las directivas del archivo "principal", que se encuentra en el directorio public_html o en cualquier directorio más alto nivel. Es decir, el efecto de las directivas de .htaccess se hereda de arriba a abajo, pero no al revés. Los cambios realizados en el archivo entran en vigor inmediatamente. Esto se debe a que la información del .htaccess se vuelve a leer cada vez que se accede al servidor web Apache.

Aquellos. en otras palabras, en el archivo .htaccess escribimos instrucciones para el servidor web Apache. Estas instrucciones pueden aplicarse a todo el sitio (si solo hay un archivo .htaccess y está en la raíz del sitio) o a un directorio (carpeta) específico (si el archivo .htaccess está en esta carpeta, entonces las instrucciones solo funcionarán en esta carpeta).

Un ejemplo del uso más sencillo de las capacidades de configuración de Apache a través del archivo .htaccess: Queremos “explicar” al servidor web que todos los documentos HTML que estén alojados en el servidor deben “entregarse” al cliente en codificación koi8-r, y no en windows-1251, como lo hace el servidor por defecto. Pongamos la línea en .htaccess:

AddType "texto/html; charset=koi8-r" .html .htm .shtml

Habiendo recibido dicho .htaccess, el servidor web Apache emitirá un encabezado al navegador del cliente, que indicará que el documento está codificado koi8-r.

Veamos otros ejemplos de uso del archivo .htaccess:

Anulación del archivo de índice

Situación: el usuario accedió al catálogo http://www.vash_domen.ru/katalog/. Con tal solicitud, el archivo de índice index.html se abrirá y se mostrará primero. Si desea anular el archivo de índice y hacerlo de modo que no sea index.html el que se abra primero, sino, por ejemplo, el archivo prais.php. Esto se puede hacer colocando las siguientes instrucciones en el archivo .htaccess en el directorio apropiado:

DirectoryIndex prais.php

Habiendo recibido un .htaccess con dicho contenido, el servidor web Apache abrirá el archivo prais.php de forma predeterminada.

Denegar el acceso a algunos archivos

A veces se hace necesario negar el acceso a ciertos archivos. Por ejemplo, a archivos de configuración que contienen detalles de acceso a bases de datos, interfaces, etc. Digamos que en el archivo config.cfg almacena el nombre de usuario/contraseña para acceder a la base de datos. Cree un archivo .htaccess en este directorio con directivas:

Orden permitir, negar Denegar de todos

Ahora, si un visitante escribe algo como http://your_domain/config.cfg en el navegador, recibirá un error 403 o su página por este error. Puedes leer más sobre las páginas de error.

Cómo bloquear un directorio con una contraseña

uno de tareas estándar lo que se resuelve usando .htaccess es restringir el acceso a un directorio específico en el servidor. Por ejemplo, debe dar acceso a un determinado directorio a visitantes individuales, proporcionándoles un nombre de usuario y una contraseña únicos.

En el directorio al que queremos restringir el acceso mediante contraseña creamos un archivo .htaccess con las siguientes directivas:

AuthType Nombre de autenticación básico "Algún nombre" AuthUserFile /public_html/XX/YY/.htpasswd requiere usuario válido

La ruta /public_html/XX/YY/.htpasswd indica la ruta completa al archivo de contraseña en el disco del servidor. Si, por ejemplo, coloca el archivo .htpasswd (contendrá contraseñas) en el directorio de inicio al que accede cuando accede al servidor a través de FTP, la ruta a este archivo se verá así /public_html/XX/YY/.htpasswd .

En la directiva AuthUserFile indicamos camino absoluto al archivo con nombres de usuario/contraseñas. Si crea el archivo .htaccess en su computadora, y no directamente en el servidor usando editor de texto, por favor presta atención atención especial eso.htaccess debe transferirse vía FTP estrictamente en modo texto (ASCII).

Cree un archivo de contraseña .htpasswd. El archivo de contraseña debe contener líneas como login:contraseña. La contraseña debe estar cifrada utilizando el algoritmo MD5. Una forma de crear dicho archivo es utilizar el programa incluido con Apache: htpasswd (normalmente en el servidor se encuentra en el directorio /usr/local/bin/, la ruta completa es /usr/local/bin/htpasswd). El uso de este programa en cada servidor individualmente: consulte con su proveedor de alojamiento.

Una vez ingresados ​​todos los nombres de usuario y contraseñas, es necesario cargar los archivos en el servidor.

Encabezado modificado por última vez

A veces desea que el servidor web emita el encabezado HTTP de última modificación. Por ejemplo, al registrar su recurso en Yandex, aparece el error "Fechas incorrectas".

Para documentos estáticos, según la documentación de Apache:

El servidor generará el último valor modificado si se especifica la directiva "XBitHack full" (simplemente escriba esta línea en .htaccess) y el archivo al que se accede tiene el atributo "ejecutable" para el grupo establecido.

Esto es válido para archivos html. En los scripts, la última modificación se emite por otros medios. Por ejemplo, si tenemos en cuenta que el script PHP genera código de forma dinámica, entonces lo más lógico sería dar como última modificación fecha actual y tiempo. Esto se implementa de la siguiente manera: en el archivo .htaccess escribimos la siguiente línea:

("Última modificación: " . gmdate("D, d M Y H:i:s") . " GMT");

Lo que esto le da al servidor le dará a los robots la última fecha de actualización de su documento, una característica muy útil.


archivo htaccess: configuraciones y ejemplos de uso - 4,1 sobre 5 basado en 18 votos

El archivo htaccess le permite configurar y anular la configuración del servidor web Apache y servidores similares. Con su ayuda, puede establecer permisos y parámetros para que el servidor funcione para ciertos usuarios de hosting e incluso en carpetas separadas usuario específico.

Se utiliza con mayor frecuencia para crear redirecciones 301 desde URL antiguas a nuevas, reasignación de tipos de archivos, acceso controlado a directorios y mucho más. Gracias al archivo htaccess, no es necesario acceder al archivo de configuración principal y afectar todo el funcionamiento del servidor.

¿Qué es un archivo htaccess y para qué sirve?

Como se mencionó, htaccess se usa para configurar algunos parámetros de Apache y otros servidores. A pesar de los grandes y extraña extensión, la personalización del archivo .htaccess se realiza abriendo y cambiando su contenido usando cualquier editor de texto.

El archivo htaccess se inventó específicamente para permitir que cada usuario cambie la configuración del servidor, afectando sólo a su propio sitio y no a todo el servidor. Todo el mundo sabe que las principales directivas de configuración de Apache se encuentran en el archivo httpd.conf. Sin embargo, para la mayoría de usuarios, y si hablamos de alojamiento virtual, entonces todos los usuarios no tienen la capacidad de acceder a él y no tienen derechos para modificarlo, ya que esta acción se aplicará a todos.

Un archivo con la extensión htaccess a menudo se denomina dinámico. Esto se debe a que el servidor debe acceder a él cada vez que necesita realizar una solicitud al directorio que lo contiene. Quizás esto ventaja significativa, ya que los cambios realizados por el usuario en el archivo entrarán en vigor inmediatamente sin necesidad de reiniciar el servidor. Si se realizan cambios en el archivo de configuración principal, reinicie el servidor - requisito previo su entrada en vigor.

Por supuesto, no todo es tan fluido como nos gustaría, ya que el uso de htaccess afecta levemente el rendimiento del servidor, sin embargo, en el caso acceso cerrado al archivo de configuración principal, este método es el método más simple y conveniente para cambiar parámetros.

Algunas características del uso de htaccess:

1. Puedes anularlo gran número directivas escritas en el archivo principal httpd.confg

2. Si coloca el archivo htaccess en el directorio raíz, se distribuirá a todo el sitio (las únicas excepciones serán aquellos directorios en los que se encuentra su propio archivo de configuración y los directorios ubicados más abajo en la estructura de árbol)

3. Puede colocar el archivo htaccess en cualquier directorio y sus directivas se aplicarán a todos los subdirectorios.

4. Htaccess no está disponible para que el usuario lo vea desde el navegador, ya que pertenece a la categoría "sistema".

Así, con usando htaccess el usuario recibe flexibilidad en la configuración servidor propio y puede aplicar los siguientes parámetros:

  • Directivas de redireccionamiento simples (redirect);
  • Directivas de redirección complejas (mod_rewrite);
  • Páginas de índice;
  • Manejo de errores;
  • Definición de codificación;
  • Gestionar el acceso a directorios y archivos;
  • Contraseña de directorio;
  • Opciones de PHP.

Ejemplos de los usos más comunes del archivo htaccess

Ahora veremos las opciones de trabajo más comunes para usar htaccess para configurar un sitio web.

Antes de comenzar, tenga en cuenta los siguientes puntos:

2. Para crear nuevo archivo con la extensión htaccess, debe abrir el bloc de notas u otro editor de texto, escribir el código, guardar el archivo, especificando la extensión .htaccess (punto al frente). Entonces solo queda tirarlo al directorio para el que estaba destinado.

3. Sintaxis.htaccess

Las rutas a los archivos (directorios) se indican desde la raíz del servidor.

Índice de directorio /home/st5155/www/data/home.html

Si configura un archivo htaccess ubicado en la carpeta raíz del sitio, las rutas se especifican desde la raíz de esta carpeta.

DirectorioIndex/home.html

Los dominios se escriben utilizando el protocolo http:// o https://

Redirigir / http://your-sait.ru

El archivo se llama "punto" htaccess.

Para crear una línea comentada, utilice el signo #.

La forma más conveniente de editar un archivo es mediante el uso Editor Akel Pad, incluido en Total Commander, simplemente selecciónelo y presione F4.

Redirección simple: directiva de redirección

1. Redirigir a nuevas páginas del sitio

Si las páginas del sitio se han movido a nuevas direcciones, es probable que un usuario o un robot de búsqueda que visite la dirección anterior no las vea. Para pegar lo viejo y nuevas direcciones páginas, puede aplicar una redirección 301 simple. Para hacer esto, necesita escribir el siguiente código en el archivo de configuración htaccess:

Redirección 301 /staraya.html http://vash-sait.ru/novaya.html

2. Llevar los feeds a un formato común

Usado anteriormente varios formatos feeds, tales como: Atom, RSS, Rdf. Hoy en día, RSS es el principal y más popular entre ellos, por lo que se puede tener cuidado de garantizar que otros formatos se redireccionen a uno. También se utiliza para esto. archivo htaccess y el siguiente código:

RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://vash-sait.ru/feed/

Redirección compleja: directiva RewriteRule

1. Redirigir un dominio de www a no www.

Muy a menudo tienes que usar redireccionamientos 301 en htaccess para fusionar dominios con www y sin www. Más temprano motores de búsqueda consideraba que dichas direcciones eran completamente diferentes y las consideraba sitios diferentes. Hoy la tarea de pegar está asignada a robot de búsqueda, pero nunca es mala idea especificar el espejo correcto. Además, no habrá confusión para usted.

Opciones +FollowSymLinks RewriteEngine On RewriteCond %(HTTP_HOST) ^www.vash-sait\.ru$ RewriteRule ^(.*)$ http://vash-sait.ru/$1

2. Redirigir a los visitantes a diferentes páginas según la dirección IP del visitante.

En htaccess es posible especificar a qué página será redirigido un usuario con una dirección IP específica. Por ejemplo, redirigir a los visitantes con la dirección IP 183.11.101.1 a la página kontakt.html

SetEnvIf REMOTE_ADDR 183.11.101.1 REDIR="redir" RewriteCond %(REDIR) redir RewriteRule ^/$ /kontakt.html

3. Redirección en caso de actualización de recursos web

Durante la prueba o actualización del recurso, el usuario no podrá acceder al sitio. Sin embargo, sería un error no advertirle sobre esto. En .htaccess puedes escribir código que redirigirá al usuario a pagina de informacion, describiendo la esencia del problema (razones, momento, etc.).

RewriteEngine en RewriteCond %(REQUEST_URI) !/info.html$ RewriteCond %(REMOTE_HOST) !^14\.124\.354\.80 RewriteRule $ http://vash-sait.ru/info.html

Donde 14.124.354.80: reemplácelo con su dirección IP.

4. Protección de enlace activo

No es ningún secreto que hoy en día se roba información de los sitios web con cada vez más frecuencia. A veces solo texto, y a veces junto con imagenes graficas. Y cada vez que un visitante llega a un sitio de terceros, estas imágenes se cargarán desde su alojamiento, creando una carga y quemando tráfico. Para evitar esto, agregue el siguiente código:

RewriteEngine en RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http://([ -a-z0-9] \.)?vash-sait\.ru RewriteRule \.(gif|jpe?g| png)$ -

En el ejemplo anterior, aparecerá un error 403 en el sitio al cargar la imagen. Si desea que se muestre una imagen específica en lugar de la imagen, reemplace la última línea con lo siguiente:

Reescribir regla \.(jpg|png|gif)$ http://vash-sait.ru/images/imageinfo.jpg

5. Redirigir a https seguro-compuesto

En .htaccess puedes configurar la redirección para asegurar conexión https para que todos los usuarios trabajen sólo a través de este protocolo, garantizando la seguridad y confiabilidad de la transferencia de datos entre servidor y cliente.

RewriteEngine en RewriteCond %(HTTPS) !en RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)

6. Sustitución automática de una barra al final de la dirección.

Situaciones muy comunes son cuando la URL termina con el nombre del directorio: http://vash-sait.ru/images/raznoe

Apache puede corregir el error de forma independiente y realizar una redirección 301 agregando la barra que falta al enlace. Por lo tanto, el usuario no sentirá ninguna diferencia y recibirá la página requerida como respuesta. Pero llevará el doble de tiempo completar esta acción. El siguiente código siempre agregará / al final de la dirección.

RewriteCond %(REQUEST_URI) /+[^\.]+$ RewriteRule ^(.+[^/])$ %(REQUEST_URI)/

7. Bloquear usuarios que provienen de un sitio específico

Si el propietario del sitio no quiere que su recurso sea visitado por usuarios conectados desde un determinado dominio y necesita bloquear su acceso, htaccess también está listo para ayudar. Puede bloquear el tráfico de ciertos sitios usando una página 403 o "denegar acceso". Útil esta configuración cuando aparecen enlaces hacia y desde sitios con contenido prohibido en su sitio hay trafico a su sitio web.

RewriteEngine en RewriteCond %(HTTP_REFERER) zapretnui-sait.com RewriteCond %(HTTP_REFERER) zapretnui-sait.com RewriteRule .* - [F]

Páginas de índice: directiva DirectoryIndex

1. Cambiando la página de índice predeterminada cargada

Normalmente, las páginas de índice predeterminadas son index.htm, index.php o index.html; al acceder al directorio del sitio, estos archivos se buscan inmediatamente. Pero si es necesario, puedes redefinir la página de índice por cualquier otra. Tarea similar También se puede solucionar utilizando un archivo htaccess.

DirectoryIndex mipágina.html

Es posible especificar dos o más páginas. Vale la pena considerar que se buscarán en el orden en que aparecen en el archivo de configuración detrás de la directiva DirectoryIndex.

DirectorioIndex index.shtml index3.php index.html index.htm

Manejo de errores: directiva ErrorDocument

1. Página de error personalizada

A pesar de que muchos sitios web todavía utilizan la página de error 404 estándar, es poco probable que satisfaga al usuario que no recibe el resultado esperado y en cambio ve información que le resulta incomprensible. Es necesario proponer una página que corresponda al estilo principal, en la que más información detallada sobre los motivos de la ejecución fallida de la solicitud. Para hacer esto, puede especificar en htaccess qué archivo cargar en lugar de la página de error 404 estándar.

Documento de error 404 "/404.html"

2. Creando tus propias páginas de error

Para aquellos que están cansados ​​de las páginas habituales que muestran una descripción de los errores ocurridos en el sitio, tienen la oportunidad de utilizar sus propias plantillas. Sólo necesitas crear tú mismo varios archivos con resolución *.html, con el contenido necesario y hacer una entrada en el archivo htaccess.

ErrorDocument 401 /errors401.html ErrorDocument 403 /errors403.html ErrorDocument 404 /errors404.html ErrorDocument 500 /errors505.html

Para que sepas qué poner en cada página de error, te describiremos brevemente su significado.

  • 401 - Autorización requerida
  • 403 - el usuario no ha sido autenticado, acceso denegado (Prohibido)
  • 404 - no se encontró el documento solicitado (archivo, directorio) (No encontrado)
  • 500 - error interno servidor - error de script o error en la sintaxis del archivo .htaccess - (Error interno del servidor)

Definición de codificación

1. Determinar la codificación en la que el servidor “envía” archivos

Para que el usuario no vea símbolos que le resulten incomprensibles en la pantalla del monitor, en los que no sea posible leer palabras, es necesario especificar la codificación correcta. Incluso sin etiqueta< Мета http-equiv = "Content-Type">el texto de la página siempre será correcto y el archivo htaccess ayudará con esto nuevamente.

Agregar conjunto de caracteres predeterminado UTF-8

2. Determinar la codificación de los archivos descargados

Puede surgir una situación similar cuando un usuario carga un archivo en el servidor y su contenido puede recodificarse. Para utilizar el requerido codificación htaccess debe contener un código que indique que todos los archivos descargados deben abrirse con codificación UTF-8.

CharsetSourceEnc UTF-8

Administrar el acceso a directorios y archivos

1. Denegar el acceso a todos los archivos

La forma más sencilla de evitar la visualización de un archivo es establecer una contraseña, pero esto no siempre es suficiente. En algunos casos, el usuario no debería tener permiso para ver ningún archivo o directorio (por ejemplo, debe bloquear directorios del sistema, cuyos cambios pueden empeorar el rendimiento del servidor). El archivo htaccess contiene un fragmento de código que priva a los usuarios de todos los privilegios.

2. Permitir el acceso desde una IP específica

El servidor web Apache es un potente y multifuncional. producto de software con varias posibilidades. Este artículo analizará las técnicas de configuración de Apache que se encuentran con mayor frecuencia cuando desarrollo web- sitios.

Como sabe, todas las configuraciones del servidor Apache se encuentran en el archivo httpd.conf, al que no siempre se puede acceder. Por ejemplo, si está utilizando un servidor virtual en el hosting, cuando un servidor Apache sirve a cientos de sitios, entonces, naturalmente, no puede permitir que el propietario de un sitio cambie la configuración del servidor, lo que afectará a todos los demás sitios. Sin embargo, el servidor web Apache permite la configuración a nivel de directorio individual utilizando archivos .htaccess. El enfoque principal de este artículo será trabajar con estos archivos, como los únicos archivos de configuración disponibles para la mayoría de los desarrolladores web.

El archivo .htaccess (con un punto al principio del nombre) es un archivo de configuración que permite personalizar el funcionamiento del servidor a nivel de directorios individuales: establecer derechos de acceso a archivos en directorios, cambiar los nombres de índice archivos, procesar de forma independiente códigos de respuesta HTTP, modificar las direcciones de las páginas solicitadas.

Nota
El archivo .htaccess se puede colocar en cualquier directorio. Las directivas de este archivo afectan a todos los archivos en el directorio actual y a todos sus subdirectorios (a menos que estas directivas sean anuladas por directivas de archivos .htaccess en subdirectorios).

Los cambios realizados en los archivos .htaccess entran en vigor inmediatamente y no requieren reiniciar el servidor, a diferencia de los cambios realizados en el archivo de configuración principal httpd.conf.

Para poder utilizar archivos .htaccess, se requieren configuraciones apropiadas en el archivo de configuración principal httpd.conf, donde se deben escribir directivas que permitirán que el archivo .htaccess anule la configuración del servidor web en el directorio. La lista de estas directivas está especificada por la directiva AllowOverride.

La directiva AllowOverride puede incluir una o una combinación de las siguientes directivas: AuthConfig, FileInfo, Indexes, Limit, Options, All, None

Para otorgar a las directivas del archivo .htaccess los máximos derechos para modificar directivas, el valor de la directiva AllowOverride en el archivo httpd.conf debe ser igual a Todo. Este es el valor predeterminado.

Permitir anular todo

Puede evitar la anulación de cualquier directiva en los archivos de configuración.htaccess utilizando el valor Ninguno:

Permitir anulación ninguna

Comentario
El nombre del archivo de configuración se puede cambiar y, por ejemplo, no llamarlo .htaccess, sino access.conf. El nombre de este archivo está determinado por la directiva AccessFileName en el archivo httpd.conf. No se recomienda cambiar el nombre del archivo de configuración .htaccess, porque esto puede complicar aún más el soporte del servidor.

Sintaxis.htaccess

Antes de ver los ejemplos, veamos la sintaxis de las directivas en los archivos .htaccess.

  • Las rutas a archivos y directorios deben especificarse desde la raíz del servidor, por ejemplo, /pub/articles/masters/php/
  • Al especificar URL absolutas, se deben especificar protocolos, por ejemplo: Redirigir / http://www.site.ru
  • En los archivos .htaccess, no se permiten espacios en las rutas de acceso a los archivos ni en los nombres de los archivos mismos, porque esto lleva a la generación de un código de respuesta 500 - error de configuración del servidor: "Error interno del servidor".

Ejemplos de uso de .htaccess

Páginas de índice:

Pueden surgir situaciones en las que sea necesario cambiar la composición de los archivos de índice, por ejemplo, si se necesita la página de índice index.php, pero no está escrita en el archivo de configuración principal httpd.conf. Este problema se puede resolver utilizando el archivo .htaccess, en el que debe crear una directiva DirectoryIndex, que enumerará los nombres de las páginas de índice:

DirectorioIndex index.php index.shtml index.html

Al solicitar un directorio sin especificar un nombre de archivo, primero buscará una página llamada index.php. Si una página con ese nombre no está en el directorio, se realizarán operaciones similares con el archivo index.shtml, etc. hasta el final de la lista hasta encontrar y abrir la página correspondiente.

Prohibición de mostrar el contenido del directorio si no hay un archivo de índice

A menudo desea evitar que se muestre una lista de archivos en un directorio si no se especifica o falta un archivo de índice. Por ejemplo, prohibir mostrar el contenido de un directorio con imágenes. Si no se establece dicha prohibición, el usuario que acceda directamente a dicho directorio recibirá una lista de todas las imágenes.

Opciones –Índices

Procesamiento de códigos de respuesta del servidor web Apache

Ningún sitio está inmune a los errores. El error más común es seguir un enlace a una página inexistente. En este caso, Apache genera un código de respuesta 404 y muestra una página de error generada automáticamente. Tener páginas inexistentes crea una mala impresión a los visitantes del sitio. Esta impresión se puede suavizar si, en lugar de páginas estándar, sustituye sus propias páginas con un mensaje de error. La directiva ErrorDocument es responsable de asignar páginas que manejan códigos de respuesta HTTP.

Documento de error 401 /401.html
Documento de error 403 /403.html
Documento de error 404 /404.html
Documento de error 500 /500.html

Después de la directiva ErrorDocument, debe especificar el código de respuesta y la página a la que se debe redirigir al visitante cuando se produzca este código de respuesta.

  • Error 401: la solicitud requiere autenticación de usuario (no autenticada).
  • Error 403: el acceso al recurso solicitado está prohibido (Prohibido).
  • Error 404: el documento solicitado no se encuentra en el servidor (No encontrado).
  • Error 500: error de configuración del servidor o programa externo (error interno del servidor).

Ejecutar código PHP en archivos HTML

Normalmente el código PHP se ejecuta en archivos con extensiones php. A veces surgen situaciones en las que es necesario ejecutar código PHP en archivos con diferente extensión. En este caso, puede indicarle al servidor web que ejecute código PHP no solo en archivos con extensión php, sino también en archivos con extensión html.

EliminarHandler.html.htm
Aplicación AddType/x-httpd-php .php .htm .html .phtml

La primera línea elimina el controlador de archivos con extensiones html y htm, y la segunda línea le dice al servidor que use el controlador PHP para archivos con extensiones htm y html.

Configurar la codificación de archivos en el servidor

La codificación especificada se envía al navegador en el encabezado Content-Type y permitirá que el navegador del cliente cambie automáticamente a la codificación requerida.

Agregar conjunto de caracteres predeterminadoWindows-1251

Configurar la codificación de archivos descargados

Al cargar archivos al servidor, puede especificar en qué codificación el servidor debe esperar el archivo.

CharsetSourceEnc ventanas-1251

Deshabilitar la directiva MultiViews

La opción MultiViews habilitada en el hosting puede causar problemas inesperados, por ejemplo, mostrar páginas de sitios inexistentes. Digamos que hay una página en el sitio con la dirección http://www.sait.ru/down.php, y si los visitantes van al directorio inexistente http://www.sait.ru/down/, entonces la opción MultiViews habilitada sustituirá el archivo down.php. Sin embargo, la sustitución no se completará por completo: rutas a imágenes, hojas de estilo, etc. se ingresará incorrectamente. Es decir, la página se mostrará con distorsiones. Para suprimir este comportamiento de Apache, la opción MultiViews debe estar deshabilitada.

Opciones -Vistas múltiples

Denegar el acceso a archivos

Para evitar que los visitantes accedan a los archivos de servicio desde una ventana del navegador, puede bloquear el acceso a dichos archivos. Para hacer esto, use la directiva Denegar y la directiva Permitir permiso de acceso.

Nota
El uso de las directivas Deny y Allow solo controla el acceso a archivos desde el navegador o desde otro programa cliente. Estas prohibiciones no se aplican a los scripts del servidor.

Bloquear el acceso a archivos desde el navegador

Negar de todos

Al utilizar dicha directiva, se denegará el acceso desde el navegador a todos los archivos y directorios del directorio actual.

Denegar el acceso a un archivo específico

Negar de todos

Aquí, sólo se deniega el acceso a los archivos denominados config.php.

Denegar el acceso a archivos de extensión inc

Negar de todos

*: cualquier secuencia de caracteres, excluyendo el carácter de barra (/).

Denegar el acceso a archivos con varios tipos de extensiones

Negar de todos

Está prohibido el acceso a archivos con extensión inc, conf y cfg

Denegar el acceso desde una dirección IP específica

Denegar desde 195.135.232.70

Permitir el acceso solo desde una dirección IP específica

Orden denegar, permitir
Negar de todos
Permitir desde 195.135.232.70

La directiva Orden le permite especificar el orden en que se ejecutarán las directivas. Primero, se ejecuta la directiva para denegar el acceso (la directiva Deny) y luego se permite el acceso para la dirección IP 195.135.232.70 (la directiva Allow). Si en la primera línea cambia el orden de las directivas a Orden permitir, denegar, entonces no se abrirá el acceso a la dirección IP 195.135.232.70, porque La directiva Deny ejecutada en último lugar anulará la directiva Allow.

Nota
Cabe señalar que, en ocasiones, permitir el acceso desde una dirección IP específica puede no funcionar. Por ejemplo, si el hosting tiene instalado un servidor proxy de caché inverso. Si las directivas de permiso de acceso no funcionan, entonces deberá comunicarse con el soporte técnico de su alojamiento sobre este problema.

Redirigir a otra dirección

A menudo surgen problemas cuando todas las solicitudes de directorio específico o es necesario redirigir la página a otra dirección. Esto se puede hacer usando las directivas Redirect y RedirectMatch. Informan que el recurso en la URL solicitada no está disponible e indican la dirección a la que debe dirigirse. Las directivas de redireccionamiento envían el encabezado apropiado al navegador, y luego el navegador realiza el redireccionamiento.




Arriba