Diferencias
Muestra las diferencias entre dos versiones de la página.
| 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: o 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. | ||