Ficheros .htaccess


Debería evitar usar ficheros .htaccess completamente si tiene acceso al fichero de configuración principal de httpd. Usar ficheros .htaccessralentiza su servidor Apache http. Cualquier directiva que pueda incluir en un fichero .htaccess estará mejor configurada dentro de una secciónDirectory, tendrá el mismo efecto y mejor rendimiento.
top

Qué son/Cómo usarlos

Los ficheros .htaccess (o "ficheros de configuración distribuida") facilitan una forma de realizar cambios en la configuración en contexto directorio. Un fichero, que contiene una o más directivas, se coloca en un documento específico de un directorio, y estas directivas aplican a ese directorio y todos sus subdirectorios.

Nota:

Si quiere llamar a su fichero .htaccess de otra manera, puede cambiar el nombre del fichero usando la directiva AccessFileName. Por ejemplo, si usted prefiere llamar al fichero .config, entonces puede poner lo siguiente en el fichero de configuración de su servidor:
AccessFileName ".config"
Generalmente, los ficheros .htaccess usan la misma sintáxis que los ficheros de la configuración principal. Lo que puede utilizar en estos ficheros lo determina la directiva AllowOverride. Esta directiva especifica, en categorías, qué directivas tendrán efecto si se encuentran en un fichero .htaccess. Si se permite una directiva en un fichero .htaccess, la documentación para esa directiva contendrá una sección Override, especificando qué valor debe ir enAllowOverride para que se permita esa directiva.
Por ejemplo, si busca en la documentación la directiva AddDefaultCharset, encontrará que se permite en ficheros .htaccess. (Vea la línea de Contexto en el sumario de la directiva.) La línea Override muestra FileInfo. De este modo, debe tener al menos AllowOverride FileInfo para que esta directiva se aplique en ficheros .htaccess.

Ejemplo:

Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Si no está seguro de cuándo, una directiva en concreto, se puede usar en un fichero .htaccess, consulte la documentación para esa directiva, y compruebe la línea Context buscando ".htaccess".



Cuando (no) usar ficheros .htaccess

Generalmente, solo debería usar ficheros .htaccess cuando no tiene acceso al fichero principal de configuración del servidor. Hay, por ejemplo, una creencia errónea de que la autenticación de usuario debería hacerse siempre dentro de ficheros .htaccess, y, más recientemente, otra creencia errónea de que las directivas de mod_rewrite deben ir en ficheros .htaccess. Esto sencillamente no es el caso. Puede poner las configuraciones de autenticación de usuario en la configuración principal del servidor, y esto es de hecho, el método preferido de configurar Apache. Del mismo modo, las directivas mod_rewritefuncionan mejor, en muchos sentidos, en el fichero de configuración principal del servidor.
Los ficheros .htaccess deberían usarse cuando su proveedor de contenidos le permite hacer modificaciones de configuración en contexto directorio, pero usted no tiene acceso de root en el servidor. En el caso de que el administrador no esté dispuesto a hacer cambios frecuentes en la configuración, puede que sea necesario permitir a usuarios individuales realizar estos cambios de configuración en ficheros .htaccess por ellos mismos. Lo cual ocurre a menudo, por ejemplo, en casos donde los ISP están albergando múltiples sitios web de usuario en una sola máquina, y quieren que sus usuarios tengan la posibilidad de modificar sus configuraciones.
Aun así, generalmente, el uso de ficheros .htaccess debería evitarse cuando sea posible. Cualquier configuración que consideraría poner en un fichero .htaccess, puede usarse con la misma efectividad en una sección <Directory> en el fichero de configuración del servidor.
Hay dos razones para evitar el uso de ficheros .htaccess.
La primera es el rendimiento. Cuando AllowOverride está configurado para permitir el uso de ficheros .htaccess, httpd buscará ficheros .htaccess en cada directorio. Así, permitiendo ficheros .htaccess provoca una pérdida de rendimiento, ¡incluso aunque no los use! Además, los ficheros .htaccess se cargan cada vez que se solicita un documento.
Además tenga en cuenta que httpd debe buscar ficheros .htaccess en todos los directorios de mayor jerarquía, para poder terner la lista completa de directivas que debe aplicar. (Vea la sección sobre Cómo se aplican las directivas.) Así, si se solicita un fichero de un directorio /www/htdocs/example, httpd debe buscar los siguientes ficheros:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess



te dejo un ejemplo de .htaccess

#Impedir el acceso a los archivos y directorios ocultos
#Los archivos y directorios ocultos (es decir, aquellos cuyo nombre empieza con un punto) normalmente no son públicos, por lo que el servidor web no debería servirlos:

RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]


#confundir con un error (pero no es error)
RedirectMatch 404 /\..*$

<FilesMatch "(\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|swp)|~)$">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

#Impedir que se pueda ver el listado de contenidos de un directorio

Options All -Indexes

#Forzar el uso de la codificación UTF-8

# Servir contenidos de tipo text/plain o text/html usando la codificación UTF-8
AddDefaultCharset utf-8

# Forzar la codificación UTF-8 en varios tipos de archivos
AddCharset utf-8 .atom .css .js .json .rss .vtt .xml




#Mejorar el rendimiento

#Comprimir archivos

<IfModule mod_deflate.c>

    # Forzar compresión también para las cabeceras malformadas
    # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
    <IfModule mod_setenvif.c>
        <IfModule mod_headers.c>
            SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
            RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
        </IfModule>
    </IfModule>

    # Comprimir los contenidos que sean de cualquiera de estos tipos
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE application/atom+xml \
                                      application/javascript \
                                      application/json \
                                      application/rss+xml \
                                      application/vnd.ms-fontobject \
                                      application/x-font-ttf \
                                      application/x-web-app-manifest+json \
                                      application/xhtml+xml \
                                      application/xml \
                                      font/opentype \
                                      image/svg+xml \
                                      image/x-icon \
                                      text/css \
                                      text/html \
                                      text/plain \
                                      text/x-component \
                                      text/xml
    </IfModule>

</IfModule>

#Páginas de error personalizadas

#ErrorDocument 400 /errores/error400.html
#ErrorDocument 401 /errores/error401.html
#ErrorDocument 403 /errores/error403.html
#ErrorDocument 404 /errores/error404.html
#ErrorDocument 500 /errores/error500.html


para mas info visita 
https://httpd.apache.org/docs/trunk/es/howto/htaccess.html

Comentarios

Entradas populares de este blog

Alter..Oracle

Robo de identidad

IPhone 3g chino (imitación perfecta)