Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
htaccess_en_profundidad [2015/02/23 11:51]
10.12.12.54
htaccess_en_profundidad [2017/03/27 17:44] (actual)
Línea 4: Línea 4:
  
  
-====== 0 - Indice ====== 
- 
- 
-  * Introducción al .htaccess 
-  * Bloqueando y permitiendo acceso 
-  * Re-escritura y Redirección 
-  * Compresión y caché 
-  * Otras funcionalidades del .htaccess 
-  * Recomendaciones sobre el fichero .htaccess 
-  * Simbología del fichero .htaccess 
- 
-  
  
  
Línea 236: Línea 224:
 Nota: Las 3 anteriores sentencias pueden combinarse escribiendo las 3 líneas SetEnvIfNoCase,​ y luego solo un deny, de la siguiente forma: Nota: Las 3 anteriores sentencias pueden combinarse escribiendo las 3 líneas SetEnvIfNoCase,​ y luego solo un deny, de la siguiente forma:
  
-SetEnvIfNoCase User-Agent "​BotMalo/"​ spambot +  ​SetEnvIfNoCase User-Agent "​BotMalo/"​ spambot 
-SetEnvIfNoCase Request_URI "/​firefoxz.php$"​ spambot +  SetEnvIfNoCase Request_URI "/​firefoxz.php$"​ spambot 
-SetEnvIfNoCase Referer "​^http://​www.spammers.com/"​ spambot +  SetEnvIfNoCase Referer "​^http://​www.spammers.com/"​ spambot 
-deny from env=spambot+  deny from env=spambot
    
 Bloqueo de robot -bot- que siempre es referenciado desde un mismo sitio, a través de Rewrite Bloqueo de robot -bot- que siempre es referenciado desde un mismo sitio, a través de Rewrite
  
-# bloqueo cuando se viene referenciado de un sitio web concreto ejemplo1.com +  ​# bloqueo cuando se viene referenciado de un sitio web concreto ejemplo1.com 
-RewriteCond %{HTTP_REFERER} ^ejemplo1\.com$ [NC] +  RewriteCond %{HTTP_REFERER} ^ejemplo1\.com$ [NC] 
-RewriteRule .* - [F]+  RewriteRule .* - [F]
    
 Bloqueo de robot -bot- que siempre es referenciado desde dos sitios, a través de Rewrite Bloqueo de robot -bot- que siempre es referenciado desde dos sitios, a través de Rewrite
  
-# bloqueo cuando se viene referenciado desde ejemplo1.com o ejemplo2.com +  ​# bloqueo cuando se viene referenciado desde ejemplo1.com o ejemplo2.com 
-RewriteCond %{HTTP_REFERER} ^ejemplo1\.com$ [NC,OR] +  RewriteCond %{HTTP_REFERER} ^ejemplo1\.com$ [NC,OR] 
-RewriteCond %{HTTP_REFERER} ^ejemplo2\.com$ [NC] +  RewriteCond %{HTTP_REFERER} ^ejemplo2\.com$ [NC] 
-RewriteRule .* - [F]+  RewriteRule .* - [F]
    
 Evitar acceso mediante el navegador a una carpeta sin el archivo "​index"​ Evitar acceso mediante el navegador a una carpeta sin el archivo "​index"​
  
-# evitar acceso a carpeta sin index +  ​# evitar acceso a carpeta sin index 
-Options All -Indexes+  Options All -Indexes
  
    
Línea 263: Línea 251:
 Nota: lo contrario, es decir, permitir el acceso a carpetas sin index es: Nota: lo contrario, es decir, permitir el acceso a carpetas sin index es:
  
-# evitar acceso a carpeta sin index +  ​# evitar acceso a carpeta sin index 
-Options All +Indexes+  Options All +Indexes
  
    
Línea 279: Línea 267:
 Es importante no repetir URLs -mostrando el mismo contenido con y sin www-, ya que penaliza el posicionamiento. Es importante no repetir URLs -mostrando el mismo contenido con y sin www-, ya que penaliza el posicionamiento.
  
-# quitar las www +  ​# quitar las www 
-RewriteCond %{http_host} ^www\.netandsoftware\.com [NC] +  RewriteCond %{http_host} ^www\.netandsoftware\.com [NC] 
-RewriteRule ^(.*)$ http://​netandsoftware.com/​$1 [R=301,L]+  RewriteRule ^(.*)$ http://​netandsoftware.com/​$1 [R=301,L]
    
 Mostrar siempre las www de la URL Mostrar siempre las www de la URL
  
-# mostrar siempre las www +  ​# mostrar siempre las www 
-RewriteCond %{HTTP_HOST} . +  RewriteCond %{HTTP_HOST} . 
-RewriteCond %{HTTP_HOST} !^www\.netandsoftware\.com$ +  RewriteCond %{HTTP_HOST} !^www\.netandsoftware\.com$ 
-RewriteRule (.*) http://​www.netandsoftware.com/​$1 [R=301,L]+  RewriteRule (.*) http://​www.netandsoftware.com/​$1 [R=301,L]
    
 Cambiar la página de carga por defecto Cambiar la página de carga por defecto
  
-#orden de los ficheros de carga por defecto +  ​#orden de los ficheros de carga por defecto 
-DirectoryIndex inicio.html index.htm index.html index.php+  DirectoryIndex inicio.html index.htm index.html index.php
  
    
Línea 303: Línea 291:
 Esto se hace para que sea más dificil detectar el tipo de ficheros que se usa Esto se hace para que sea más dificil detectar el tipo de ficheros que se usa
  
-# camuflar archivos PHP como NAS +  ​# camuflar archivos PHP como NAS 
-AddType application/​x-httpd-php .nas+  AddType application/​x-httpd-php .nas
    
 Redirigir el contenido en función del navegador usado Redirigir el contenido en función del navegador usado
  
-RewriteCond %{HTTP_USER_AGENT} ^Opera/* +  ​RewriteCond %{HTTP_USER_AGENT} ^Opera/* 
-RewriteRule ^index\.html$ index.opera.html [L] +  RewriteRule ^index\.html$ index.opera.html [L] 
-RewriteCond %{HTTP_USER_AGENT} ^Mozilla/​* +  RewriteCond %{HTTP_USER_AGENT} ^Mozilla/​* 
-RewriteRule ^index\.html$ index.mozilla.html [L] +  RewriteRule ^index\.html$ index.mozilla.html [L] 
-RewriteRule ^index\.html$ index.html [L]+  RewriteRule ^index\.html$ index.html [L]
  
    
Línea 320: Línea 308:
 Redireccionar una antigua página a la nueva Redireccionar una antigua página a la nueva
  
-# redireccionar permanentemente +  ​# redireccionar permanentemente 
-RewriteRule ^(.*)$ http://​www.minuevodominio.com/​$1 [R=301,L]+  RewriteRule ^(.*)$ http://​www.minuevodominio.com/​$1 [R=301,L]
    
 Redireccionar una antigua página a la nueva, a través de ReDirect Redireccionar una antigua página a la nueva, a través de ReDirect
  
-# redireccionar permanentemente +  ​# redireccionar permanentemente 
-redirect 301 / http://​www.dominio.com/​+  redirect 301 / http://​www.dominio.com/​
    
 Redireccionar una web a otro sitio provisionalmente (redirección 302) Redireccionar una web a otro sitio provisionalmente (redirección 302)
  
-# redireccionar provisionalmente +  ​# redireccionar provisionalmente 
-RewriteRule ^(.*)$ http://​www.minuevodominio.com/​$1 [R=302,L]+  RewriteRule ^(.*)$ http://​www.minuevodominio.com/​$1 [R=302,L]
    
 Redireccionar de un archivo a otro Redireccionar de un archivo a otro
  
-# redireccionar un antiguo fichero a otra nueva dirección +  ​# redireccionar un antiguo fichero a otra nueva dirección 
-Redirect /​antiguo.html http://​dominio.com/​nuevo.html+  Redirect /​antiguo.html http://​dominio.com/​nuevo.html
    
 Redireccionar una IP concreta a una página concreta Redireccionar una IP concreta a una página concreta
Línea 343: Línea 331:
  
 # redireccionar una IP a una página concreta de nuestra web # redireccionar una IP a una página concreta de nuestra web
-RewriteCond %{REMOTE_ADDR} 100.101.102.103 +  ​RewriteCond %{REMOTE_ADDR} 100.101.102.103 
-RewriteRule .* pagina-concreta.html [R]+  RewriteRule .* pagina-concreta.html [R]
    
 Redireccionar toda una web a un directorio del mismo dominio Redireccionar toda una web a un directorio del mismo dominio
  
-# traslada todas las URL antiguas a la nueva carpeta en el mismo dominio +  ​# traslada todas las URL antiguas a la nueva carpeta en el mismo dominio 
-RewriteCond %{HTTP_HOST} ^midominio\.com$ [OR] +  RewriteCond %{HTTP_HOST} ^midominio\.com$ [OR] 
-RewriteCond %{HTTP_HOST} ^www\.midominio\.com$ +  RewriteCond %{HTTP_HOST} ^www\.midominio\.com$ 
-RewriteCond %{REQUEST_URI} !^/​webencarpeta/​ +  RewriteCond %{REQUEST_URI} !^/​webencarpeta/​ 
-RewriteRule (.*) /​webencarpeta/​$1 [L]+  RewriteRule (.*) /​webencarpeta/​$1 [L]
    
 Quitar una palabra de una URL Quitar una palabra de una URL
Línea 358: Línea 346:
 En el siguiente ejemplo, de http://​www.midominio.com/​quitar/​prueba.html a http://​www.midominio.com/​prueba.html En el siguiente ejemplo, de http://​www.midominio.com/​quitar/​prueba.html a http://​www.midominio.com/​prueba.html
  
-# quitar una cadena de una URL +  ​# quitar una cadena de una URL 
-RewriteRule ^quitar/​(.+)$ http://​www.midominio.com/​$1 [R=301,L]+  RewriteRule ^quitar/​(.+)$ http://​www.midominio.com/​$1 [R=301,L]
    
 URL amigable (uso de fin de interrogación en RewriteRule) URL amigable (uso de fin de interrogación en RewriteRule)
Línea 365: Línea 353:
 Cambia una URL como http://​www.midominio.com/​articulos-blog?​catid=27 a http://​www.midominio.com/​articulos-blog de forma permanente. Cambia una URL como http://​www.midominio.com/​articulos-blog?​catid=27 a http://​www.midominio.com/​articulos-blog de forma permanente.
  
-# Uso de ? +  ​# Uso de ? 
-RewriteCond %{REQUEST_URI} ^/​articulos-blog$ [NC] +  RewriteCond %{REQUEST_URI} ^/​articulos-blog$ [NC] 
-RewriteCond %{QUERY_STRING} ^catid=(.*)$ [NC] +  RewriteCond %{QUERY_STRING} ^catid=(.*)$ [NC] 
-RewriteRule ^(.*)$ /​articulos-blog?​ [R=301,L]+  RewriteRule ^(.*)$ /​articulos-blog?​ [R=301,L]
    
 URL amigable (uso del tanto por ciento en RewriteRule) URL amigable (uso del tanto por ciento en RewriteRule)
 Cambia una URL como http://​www.dominio.com/​noticias?​id=127 a http://​www.dominio.com/​noticias/​127 de forma provisional. Cambia una URL como http://​www.dominio.com/​noticias?​id=127 a http://​www.dominio.com/​noticias/​127 de forma provisional.
  
-# Uso del % +  ​# Uso del % 
-RewriteCond %{REQUEST_URI} ^/noticias$ [NC] +  RewriteCond %{REQUEST_URI} ^/noticias$ [NC] 
-RewriteCond %{QUERY_STRING} ^id=(.*)$ [NC] +  RewriteCond %{QUERY_STRING} ^id=(.*)$ [NC] 
-RewriteRule ^(.*)$ /​noticias/​%1?​ [R=302,L]+  RewriteRule ^(.*)$ /​noticias/​%1?​ [R=302,L]
    
 Mejorando el posicionamiento SEO con RewriteRule Mejorando el posicionamiento SEO con RewriteRule
 Cambia una URL con la cadena "​ps"​ por una URL con la cadena "​posicionamiento-seo"​ que determina mejor el contenido de las URLs. Cambia una URL con la cadena "​ps"​ por una URL con la cadena "​posicionamiento-seo"​ que determina mejor el contenido de las URLs.
  
-# mejorando el posicionamiento SEO sustituyendo caracteres sin sentido por otros que determinan el contenido +  ​# mejorando el posicionamiento SEO sustituyendo caracteres sin sentido por otros que determinan el contenido 
-RewriteRule ^(.*)/​ps/​(.*)$ $1/​posicionamiento-seo/​$2 [L,R=301]+  RewriteRule ^(.*)/​ps/​(.*)$ $1/​posicionamiento-seo/​$2 [L,R=301]
    
 Transformación de una URL con agrupamiento de caracteres mayúsculas y minúsculas Transformación de una URL con agrupamiento de caracteres mayúsculas y minúsculas
Línea 388: Línea 376:
 Cambia la URL de este tipo http://​www.midominio.com/​pais/​Espana.php a http://​www.midominio.com/​codigo/​pais.php?​nombre=Espana Cambia la URL de este tipo http://​www.midominio.com/​pais/​Espana.php a http://​www.midominio.com/​codigo/​pais.php?​nombre=Espana
  
-# detectar palabras en mayúsculas o minúsculas o combinacion de ambas +  ​# detectar palabras en mayúsculas o minúsculas o combinacion de ambas 
-RewriteRule ^pais/​([a-zA-Z_-]+).php$ codigo/​pais.php?​nombre=$1 [L]+  RewriteRule ^pais/​([a-zA-Z_-]+).php$ codigo/​pais.php?​nombre=$1 [L]
    
 Paso de parámetros en la URL y doble parámetro Paso de parámetros en la URL y doble parámetro
Línea 395: Línea 383:
 Cambia una URL como http://​www.midominio.com/​fecha/​2013/​12.html a http://​www.midominio.com/​fecha.php?​mes=12&​anio=2013 de forma permanente Cambia una URL como http://​www.midominio.com/​fecha/​2013/​12.html a http://​www.midominio.com/​fecha.php?​mes=12&​anio=2013 de forma permanente
  
-# Doble parámetro +  ​# Doble parámetro 
-RewriteRule ^fecha/​(.+)/​(.+)\.html$ fecha.php?​mes=$2&​anio=$1 [R=301,L]+  RewriteRule ^fecha/​(.+)/​(.+)\.html$ fecha.php?​mes=$2&​anio=$1 [R=301,L]
  
    
Línea 408: Línea 396:
 Comprimir ficheros de texto, HTML, JavaScript, CSS y XML Comprimir ficheros de texto, HTML, JavaScript, CSS y XML
  
-# comprimir focheros texto, html, javascript, css, xml +  ​# comprimir focheros texto, html, javascript, css, xml 
-AddOutputFilterByType DEFLATE text/​plain +  AddOutputFilterByType DEFLATE text/​plain 
-AddOutputFilterByType DEFLATE text/html +  AddOutputFilterByType DEFLATE text/html 
-AddOutputFilterByType DEFLATE text/xml +  AddOutputFilterByType DEFLATE text/xml 
-AddOutputFilterByType DEFLATE text/css +  AddOutputFilterByType DEFLATE text/css 
-AddOutputFilterByType DEFLATE application/​xml +  AddOutputFilterByType DEFLATE application/​xml 
-AddOutputFilterByType DEFLATE application/​xhtml+xml +  AddOutputFilterByType DEFLATE application/​xhtml+xml 
-AddOutputFilterByType DEFLATE application/​rss+xml +  AddOutputFilterByType DEFLATE application/​rss+xml 
-AddOutputFilterByType DEFLATE application/​javascript +  AddOutputFilterByType DEFLATE application/​javascript 
-AddOutputFilterByType DEFLATE application/​x-javascript+  AddOutputFilterByType DEFLATE application/​x-javascript
  
    
Línea 426: Línea 414:
 Cachear ficheros de imágenes a una semana Cachear ficheros de imágenes a una semana
  
-#Cache del navegador, imagenes cacheadas a una semana: 604800 segundos +  ​#Cache del navegador, imagenes cacheadas a una semana: 604800 segundos 
-<​FilesMatch "​\.(ico|jpg|jpeg|png|gif)$">​ +  <​FilesMatch "​\.(ico|jpg|jpeg|png|gif)$">​ 
-Header set Cache-Control "​max-age=604800,​ public"​ +    Header set Cache-Control "​max-age=604800,​ public"​ 
-</​FilesMatch>​+  </​FilesMatch>​
    
 Cachear ficheros JPG a un mes Cachear ficheros JPG a un mes
  
-#Cache del navegador, imágenes cacheadas a un mes: 2592000 segundos +  ​#Cache del navegador, imágenes cacheadas a un mes: 2592000 segundos 
-<​FilesMatch "​\.(jpg|jpeg)$">​ +  <​FilesMatch "​\.(jpg|jpeg)$">​ 
-Header set Cache-Control "​max-age=2592000,​ public"​ +    Header set Cache-Control "​max-age=2592000,​ public"​ 
-</​FilesMatch>​+  </​FilesMatch>​
    
 Cachear con ExpiresByType y el intervalo legible Cachear con ExpiresByType y el intervalo legible
  
-#caché que expira las imágenes JPG en 6 meses, los CSS en 2 meses, y los JavaScripts en 2 semanas +  ​#caché que expira las imágenes JPG en 6 meses, los CSS en 2 meses, y los JavaScripts en 2 semanas 
-ExpiresActive on +  ExpiresActive on 
-ExpiresByType image/jpg "​access plus 6 months"​ +  ExpiresByType image/jpg "​access plus 6 months"​ 
-ExpiresByType text/css "​access plus 2 months"​ +  ExpiresByType text/css "​access plus 2 months"​ 
-ExpiresByType text/​javascript "​access plus 2 weeks"+  ExpiresByType text/​javascript "​access plus 2 weeks"
    
 Cachear ficheros a un año con ExpiresDefault y el intervalo en segundos Cachear ficheros a un año con ExpiresDefault y el intervalo en segundos
  
-ExpiresActive On +  ​ExpiresActive On 
-ExpiresDefault A0 +  ExpiresDefault A0 
-#  caché expira en un año (A9030400) para los ficheros FLV, ICO, AVI, MOV, PPT, DOC, MP3, WMV y WAV +  #  caché expira en un año (A9030400) para los ficheros FLV, ICO, AVI, MOV, PPT, DOC, MP3, WMV y WAV 
-<​FilesMatch "​\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">​ +  <​FilesMatch "​\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">​ 
-ExpiresDefault A9030400 +    ExpiresDefault A9030400 
-</​FilesMatch>​+  </​FilesMatch>​
  
    
Línea 465: Línea 453:
 Asignar permisos CHMOD automáticamente al fichero .htpasswd Asignar permisos CHMOD automáticamente al fichero .htpasswd
  
-# permiso automático del fichero que protege el directorio .htpasswd +  ​# permiso automático del fichero que protege el directorio .htpasswd 
-chmod .htpasswd files 640+  chmod .htpasswd files 640
    
 Asignar permisos CHMOD automáticamente al fichero .htaccess Asignar permisos CHMOD automáticamente al fichero .htaccess
  
-# permiso automático del fichero .htaccess +  ​# permiso automático del fichero .htaccess 
-chmod .htaccess files 644+  chmod .htaccess files 644
    
 Asignar permisos CHMOD automáticamente a ficheros PHP Asignar permisos CHMOD automáticamente a ficheros PHP
  
-# permisos automáticos de archivos PHP +  ​# permisos automáticos de archivos PHP 
-chmod php files 600+  chmod php files 600
    
 Limitar la subida de ficheros más grandes que una cantidad Limitar la subida de ficheros más grandes que una cantidad
Línea 482: Línea 470:
 Protege de ciertos ataques DOS, limitando el tamaño de archivos que se suben al servidor. Protege de ciertos ataques DOS, limitando el tamaño de archivos que se suben al servidor.
  
-# limitar la subida a 10 MB +  ​# limitar la subida a 10 MB 
-LimitRequestBody 10000000+  LimitRequestBody 10000000
    
 Permitir al usuario descargar archivos multimedia Permitir al usuario descargar archivos multimedia
Línea 489: Línea 477:
 Generalmente sólo se permiten abrir Generalmente sólo se permiten abrir
  
-# permitir descarga de ficheros multimedia AVI, MPG, WMV y MP3 +  ​# permitir descarga de ficheros multimedia AVI, MPG, WMV y MP3 
-AddType application/​octet-stream .avi +  AddType application/​octet-stream .avi 
-AddType application/​octet-stream .mpg +  AddType application/​octet-stream .mpg 
-AddType application/​octet-stream .wmv +  AddType application/​octet-stream .wmv 
-AddType application/​octet-stream .mp3+  AddType application/​octet-stream .mp3
    
 Personalizar errores 404 Personalizar errores 404
  
-ErrorDocument 404 /​errores/​404.html+  ​ErrorDocument 404 /​errores/​404.html
  
    
Línea 505: Línea 493:
 Corregir pequeños errores de ortografía en las URL Corregir pequeños errores de ortografía en las URL
  
-CheckSpelling On+  ​CheckSpelling On
    
 Especificar el e-mail por defecto del administrador del servidor Especificar el e-mail por defecto del administrador del servidor
  
-# e-mail del administrador del servidor +  ​# e-mail del administrador del servidor 
-SetEnv SERVER_ADMIN webmaster@midominio.com+  SetEnv SERVER_ADMIN webmaster@midominio.com
    
 Especificar el lenguaje por defecto del servidor Especificar el lenguaje por defecto del servidor
  
-# lenguaje por defecto del servidor +  ​# lenguaje por defecto del servidor 
-DefaultLanguage en-US+  DefaultLanguage en-US
    
 Forzar el uso del protocolo seguro SSL Forzar el uso del protocolo seguro SSL
  
-# fuerza el uso de SSL en la web +  ​# fuerza el uso de SSL en la web 
-SSLOptions + StrictRequire +  SSLOptions + StrictRequire 
-SSLRequireSSL+  SSLRequireSSL
    
 Redireccionar usuarios con protocolo seguro HTTPS a una carpeta en particular Redireccionar usuarios con protocolo seguro HTTPS a una carpeta en particular
 Esto se puede necesitar cuando una web tiene una tienda online en una carpeta específica Esto se puede necesitar cuando una web tiene una tienda online en una carpeta específica
  
-RewriteCond %{SERVER_PORT} 80 +  ​RewriteCond %{SERVER_PORT} 80 
-RewriteCond %{REQUEST_URI} carpeta +  RewriteCond %{REQUEST_URI} carpeta 
-RewriteRule ^(.*)$ https://​www.midominio.com/​carpeta/​$1 [R,L]+  RewriteRule ^(.*)$ https://​www.midominio.com/​carpeta/​$1 [R,L]
    
 Evitar la visualización de errores al visitante Evitar la visualización de errores al visitante
  
-# evitar que los errores se muestren al usuario +  ​# evitar que los errores se muestren al usuario 
-php_flag display_startup_errors off +  php_flag display_startup_errors off 
-php_flag display_errors off +  php_flag display_errors off 
-php_flag html_errors off+  php_flag html_errors off
    
 Registrar errores de PHP en un fichero log Registrar errores de PHP en un fichero log
  
-# registrar errores en log +  ​# registrar errores en log 
-php_flag log_errors on +  php_flag log_errors on 
-php_value error_log /​logs/​php_error.log+  php_value error_log /​logs/​php_error.log
    
 Limitar el número de visitas al mismo tiempo a 400 Limitar el número de visitas al mismo tiempo a 400
  
-# limitar el número de visitas a 400 +  ​# limitar el número de visitas a 400 
-MaxClients 400+  MaxClients 400
    
 Denegar la ejecución de scripts CGI Denegar la ejecución de scripts CGI
  
-# bloquear CGIs +  ​# bloquear CGIs 
-Options -ExecCGI +  Options -ExecCGI 
-AddHandler cgi-script .php .pl .py .jsp .asp .sh .cgi+  AddHandler cgi-script .php .pl .py .jsp .asp .sh .cgi
    
 Declarar tipos MIME Declarar tipos MIME
  
-# agregar tipos mime +  ​# agregar tipos mime 
-AddType application/​x-shockwave-flash .swf +  AddType application/​x-shockwave-flash .swf 
-AddType video/x-flv .flv +  AddType video/x-flv .flv 
-AddType image/​x-icon .ico+  AddType image/​x-icon .ico
    
 Definiendo el juego de caracteres Definiendo el juego de caracteres
Línea 565: Línea 553:
 Pasando el juego de caracteres se evita el mostrar un error 500 por este motivo Pasando el juego de caracteres se evita el mostrar un error 500 por este motivo
  
-AddDefaultCharset utf-8+  ​AddDefaultCharset utf-8
    
 Desactivar los Entities Tags Desactivar los Entities Tags
  
-FileETag none+  ​FileETag none
  
    
Línea 579: Línea 567:
  
  
-    ​El tamaño es importante: cuanto más pequeño sea el fichero .htaccess menos tiempo tardará el servidor en procesarlo cada vez que se realiza una petición a tu servidor. Esto implica una pérdida de rendimiento en la carga de las páginas de tu sitio web si este fichero se hace demasiado grande. +El tamaño es importante: cuanto más pequeño sea el fichero .htaccess menos tiempo tardará el servidor en procesarlo cada vez que se realiza una petición a tu servidor. Esto implica una pérdida de rendimiento en la carga de las páginas de tu sitio web si este fichero se hace demasiado grande. 
-    La directiva [L] es realmente interesante y hace que el servidor no procese más el archivo una vez que se cumple esa regla. Por lo que incorpora siempre que puedas esta directiva en los RewriteRule. +    ​ 
-    La organización es fundamental:​ dado lo complicada que pueden ser ciertas líneas en el código de .htaccess, es imprescindible comentar adecuadamente tu fichero para que la modificación sea rápida y sencilla. No escatimes en comentarios,​ y organiza adecuadamente las instrucciones de tu .htaccess. +La directiva [L] es realmente interesante y hace que el servidor no procese más el archivo una vez que se cumple esa regla. Por lo que incorpora siempre que puedas esta directiva en los RewriteRule. 
-    Protege adecuadamente este archivo de reescrituras ajenas, puede llegar a ser muy peligroso. +La organización es fundamental:​ dado lo complicada que pueden ser ciertas líneas en el código de .htaccess, es imprescindible comentar adecuadamente tu fichero para que la modificación sea rápida y sencilla. No escatimes en comentarios,​ y organiza adecuadamente las instrucciones de tu .htaccess. 
-    La denegación de permisos debe estar lo primero, antes de ejecutar RewriteCond y RewriteRule.+Protege adecuadamente este archivo de reescrituras ajenas, puede llegar a ser muy peligroso. 
 + 
 +La denegación de permisos debe estar lo primero, antes de ejecutar RewriteCond y RewriteRule.
  
    
  
    
-7.- Simbología del fichero .htaccess+====== ​7.- Simbología del fichero .htaccess ​====== 
  
 De forma breve, los códigos y símbolos en el archivo .htaccess son: De forma breve, los códigos y símbolos en el archivo .htaccess son:
Línea 612: Línea 603:
 [PT] Pass Through: pasa el URL a Apache para seguir procesando. [PT] Pass Through: pasa el URL a Apache para seguir procesando.
  
-[OR] Or: indica que la expresión debe interpretase como una alternativa junto a la siguiente: ​ó lógico. Si se omite, se sobreentiende que es una y lógica, por defecto.+[OR] Or: indica que la expresión debe interpretase como una alternativa junto a la siguiente: ​lógico. Si se omite, se sobreentiende que es una y lógica, por defecto.
  
 [NE] No Escape: analiza las salidas de caracteres sin escapar. [NE] No Escape: analiza las salidas de caracteres sin escapar.
Línea 668: Línea 659:
 + indica uno o más caracteres del caracter que le precede. Por ejemplo: (.+) indica cualquier cadena de uno o más caracteres. + indica uno o más caracteres del caracter que le precede. Por ejemplo: (.+) indica cualquier cadena de uno o más caracteres.
  
-| es el ó lógico, condición de alternancia. Ejemplo (a|b) es el caracter a o el b.+''​|'' ​es el ó lógico, condición de alternancia. Ejemplo ​''​(a|b)'' ​es el caracter a o el b.
  
 \ escapa caracteres, es decir, toma el caracter que le sigue literalmente. Por ejemplo: “\.” indica literalmente un punto, ya que sin la barra invertida indicaría cualquier caracter. \ escapa caracteres, es decir, toma el caracter que le sigue literalmente. Por ejemplo: “\.” indica literalmente un punto, ya que sin la barra invertida indicaría cualquier caracter.