Anuncios

Bienvenidos sean a este post, hoy veremos el codigo del archivo mencionado en el titulo.

Anuncios

En este caso debemos ir al directorio webroot y en este debemos crear un archivo al cual llamaremos .htaccess, nuestro siguiente paso sera abrir este archivo y le agregaremos este primer codigo:

Options –Indexes
Anuncios

Esto evitara que los usuarios pueden acceder al listado de nuestros directorios donde esta la pagina siempre y cuando no exista una pagina index, despues agregaremos el siguiente bloque:

<IfModule mod_rewrite.c>

</IfModule>
Anuncios

Este condicional verifica si se usa el modulo mod_rewrite, el cual nos servira para poder reescribir URL en la marcha, nos ayudara a crear una pagina donde por ejemplo nos permite convertir:

index.php?page 
Anuncios

en:

/page 
Anuncios

Dentro de este bloque primero agregaremos este codgo:

RewriteEngine On
RewriteBase /
Anuncios

Este habilitara el motor de este modulo y la segunda establece la cual es la raiz de nuestra pagina, debajo de estas lineas agreguemos la siguientes:

# Descomenta la regla inferior para forzar al HTTPS (SSL)
RewriteCond %{HTTPS} !on
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Anuncios

Aqui comenzaremos con la configuracion de las reglas de reescritura del modulo, tal como indica el comentario si tenemos un servidor que ofrece la posibilidad de usar a SSL podemos descomentar la ultima linea para forzar el uso del protocolo, luego agregaremos el siguiente codigo seguido al anterior:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^(.+)/$ $1 [R=307,L]
Anuncios

Esto permitira que se ignoren todas las barras asi como directorios y archivos existentes permitiendo solo URL dinamicos, es decir URL que no existen como archivos fisicos, pero la ultima regla envia todas las solicitudes a index.php?$1 donde $1 es la primera solicitud despues de / en la URL solicitada, la instruccion ReWriteCond equivale a decir que ejecutes un RewriteRule solo si es verdadera, despues agregaremos el siguiente bloque:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Anuncios

Estas nos permitiran que todos los archivos y directorios se puedan mostrar directamente, por ultimo agregaremos la siguiente linea:

RewriteRule ^(.*)$ index.php?$1 [QSA,L]
Anuncios

Aqui volvemos a utilizar a ReWriteRule pero esta vez para decirle que si la solicitud realizada encaja con la expreson ^(.*)$, la cual equivale a cualquier URL solicitada excepto por la raiz del servidor, por ejemplo si hacemos una solicitud a contacto se hara de la siguiente forma:

index.php?contacto
Anuncios

Si volvemos a la linea que ingresamos ultimo, esta posee una opcion llamada QSA la cual le dice al motor de reescritura que debe agregar una parte de la cadena de la consulta en la cadena de substitucion a la existente en lugar de reemplazarla, veamos como quedo nuestro primer codigo del archivo:

.htaccess

Options –Indexes

<IfModule mod_rewrite.c>

	RewriteEngine On
	RewriteBase /

	# Descomenta la regla inferior para forzar al HTTPS (SSL)
	RewriteCond %{HTTPS} !on
	#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_URI} (.*)/$
	RewriteRule ^(.+)/$ $1 [R=307,L]

	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d

	RewriteRule ^(.*)$ index.php?$1 [QSA,L]
</IfModule>
Anuncios

En resumen, hoy hemos visto como crear un archivo para modificar las reglas de nuestras paginas, esto nos permitira unas acciones propias mas alla de las establecidas en el servidor, en los proximos posts iremos viendo porque es necesaria esta modificacion, y es bueno tener una base que se puede implementar para otros proyectos propios, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50

Anuncio publicitario