DirectoryIndex index.html index.php index.htm
Apache buscara cada uno de estos elementos; sino existe index.html, buscara index.php y asi sucesivamente
htaccess Noob to Pro.
DirectoryIndex index.html index.php index.htm
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
Si intentas acceder a tu fichero .htaccess mediante un navegador web, seguramente obtienes un error de acceso denegado (caso contrario deberías revisar tu configuración :D).
Esto pasa porque el archivo de configuración por defecto de apache incluye algunas líneas que prohíben el acceso a cualquier archivo cuyo nombre comience de la forma .ht Identifiquemos las líneas de código: dentro del archivo de configuración httpd encontramos
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
</FilesMatch>
FilesMatch: indica que la regla posteriormente definida se aplicara a los archivos que cumplan cierta condición
Condicion: sentencia que decide a que archivos se aplicaran las reglas posteriormente definidas, en este caso se trata de una sencilla expresion regular que explicaré a continuación...
Pasando en limpio e intentando comunicar la condición en “lenguaje natural” por llamarlo de alguna manera. Podríamos decir que: “Se denegara el acceso a todos aquellos archivos cuyo nombre comience con .ht”
¡Valla! a que viéndolo de esa forma es muy sencillo. Quiero destacar que las expresiones regulares son una herramienta extremadamente poderosa, utilizándolas correctamente es posible lograr cosas sorprendentes :O. Por el momento no voy a extenderme en este tema asique recomiendo leer algún tutorial de expresiones regulares, Saludos.En la práctica, son contados los casos en que surge la necesidad de modificar el nombre del htaccess. Sin embargo apache es muy configurable y si se tienen claros los objetivos a alcanzar y se poseen los conocimientos suficientes para manipularlo, puede ahorrarnos más de un dolor de cabeza.
Para modificar el nombre del fichero que deseemos utilizar como .htaccess basta con identificar el archivo de configuración httpd-default (no pongo su ubicación ya que esta varía según el sistema operativo y la ruta de instalación, pero una simple búsqueda debería ser suficiente para localizarlo).
Una vez dentro identificamos las siguientes líneas:
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
AccessFileName .htaccess
Lugo de la definición AccesFileName ponemos el nombre del archivo que deseamos utilizar como archivo de configuración (debe comenzar con un punto (.)). Eso es todo, para que los cambios tengan efecto es necesario reiniciar el servidor. Para esto introducimos en la consola el siguiente comando.
apachectl -k restart
Es posible que estés acostumbrado a reiniciar apache de otra forma. Más adelante veremos en qué casos es recomendable usar una u otra orden para reiniciar el servidor.
Un fichero .htaccess (hypertext access), también conocido como archivo de configuración distribuida. Es un archivo que nos permite definir directivas de configuración que afecten a uno o más directorios sin necesidad de editar la configuración por defecto de apache.
A efectos prácticos, gracias a los archivos .htaccess podremos tener una configuración por defecto, en /ruta/directorio1 otra distinta en /ruta/directorio2, /ruta/directorioX.
Teniendo en cuenta que recién estamos comenzando a introducirnos en las características y descubriendo la potencialidad de .htaccess. Solo teniendo en cuenta estos primeros párrafos podríamos preguntarnos.