Archivo de la etiqueta: .htaccess

Editor de .htaccess

Cada vez que tenemos que tocar una directiva o tenemos que modificar alguna propiedad en nuestras aplicaciones nos ponemos a modificar nuestro .htacces para hacer que el comportamiento que estamos buscando se haga de una manera correcta, y lo que suele ocurrir, a no ser que nos dediquemos a ello todos los días, no nos acordemos de las directivas para hacerlo, un muy buen ayudante es esta web en la cual podemos decirle que es lo que necesitamos y el nos genera lo que tenemos que poner en nuestro .htaccess.

http://www.htaccesseditor.com/es.shtml

Anuncio publicitario

Redirecciones 301 en Drupal

Drupal CMSEn algún momento nos podemos encontrar en la necesidad de realizar una redirección permanente desde una pagina antigua a una nueva en nuestro Drupal.

Pongamos que nuestro sitio web es http://www.misitio.com, la pagina antigua la vamos a llamar pagina-antigua y la nueva pagina-nueva.

Para hacerlo tenemos que editar el .htaccess que esta en la raíz de nuestro sitio hecho con drupal.

1.- Buscamos la sección que empieza por <IfModule mod_rewrite.c> ,nos situamos en le linea anterior a </IfModule> y escribimos (todo en una linea).

RewriteRule ^pagina-antigua$ http://www.misitio.com/pagina-nueva [R=301,L]

Guardamos y ahora cuando pongamos la dirección http://www.misitio.com/pagina-antigua nos redigira a pagina-nueva

Mas información

 

Como eliminar las extensiones .php, .html y htm de nuestra pagina web con .htaccess

Apache Web Server

A la hora de presentar nuestra pagina web, a veces nos puede interesar, que el usuario no sepa como esta hecha la pagina web, o simplemente queremos simplificar el enlace para que se pueda acceder de una manera sencilla.

He encontrado esta pagina web, la cual merece ser visitada, ya que esta muy bien hecha, en la cual nos explican de una manera muy sencilla, aunque en inglés, de como configurar, si usamos Apache, con .htaccess, para ocultar las extensiones.

http://alexcican.com/post/how-to-remove-php-html-htm-extensions-with-htaccess/

Ficheros .user.ini – PHP Tips

Una de las novedades que trajo la versión 5.3 de PHP fue la de soportar ficheros INI, al estilo .htaccess a nivel de directorios, siempre y cuando lo tengamos configurado el SERVER API como CGI/FastCGI.

Esto quiere decir que, al igual que podemos especificar con .htaccess propiedades en cada directorio, podemos hacerlo con PHP a nivel de directorio o a nivel de raíz del sitio. Por ejemplo, si tenemos nuestra web en un hosting externo lo mas normal es que no podamos cambiar propiedades en el php.ini, pues bien, lo que si podemos hacer es crear nuestro fichero .user.ini y especificar esas propiedades en ese fichero, pero no todas, solo se reconocerán las configuraciones que tengan los modos PHP_INI_PERDIR y PHP_INI_USER.

Mas Información http://www.php.net/manual/es/configuration.file.per-user.php

Enhanced by Zemanta

Ocultar la extensión de nuestras paginas web – Apache Tips

Apache Web Server

A veces, por el motivo que sea, puede que no nos interese que los visitantes que accedan a nuestra pagina web sepan como esta hecha, algunas veces este motivo es por motivos de seguridad, y otras, por motivos de posicionamiento web, queda bastante mejor tener un enlace de la manera http://midominio.com/contacta que http://midominio.com/contacta.php .

Si el servidor en el cual esta nuestra web es Apache y tiene el mod_rewrite habilitado podemos hacerlo creando un fichero .htaccess en la raíz de nuestro sitio de la siguiente manera:


Options Indexes FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ $1.php
ErrorDocument 404 /404.php

view raw

.htaccess

hosted with ❤ by GitHub

Este fichero esta configurado para ficheros php, si lo queremos hacer con ficheros html o htm solo tenemos que cambiar donde pone .php en la linea 7 por .html o .htm.

Decir también que la ultima linea no es necesaria, pero a mi me gusta ponerla ya que así evitamos que si alguien «escribe mal» la ruta no salga un error de servidor. Lo de «escribe mal» lo pongo entre comillas ya que muchas veces se hace intencionadamente con el único objetivo de conocer las características del servidor en el cual se esta ejecutando la web, así que no cuesta nada crear nuestra propia pagina de error o bien que aparezca la principal del sitio.

Enhanced by Zemanta

Restringir el acceso con contraseña a sitios web – Apache Tips

Si queremos que a un directorio de nuestra web o a un sitio, poner una contraseña para poder acceder, de una manera rapida y sin tener que programar nada, si el servidor web que estamos usando es Apache podemos hacerlo de una manera sencilla con el fichero .htaccess

Antes de crear el fichero tenemos que crear los usuarios que podrán acceder, para hacerlo utilizaremos el comando htpasswd


htpasswd -c /ruta/completa/ficheroUsuarios usuario

A continuación de lanzar el comando nos pedira dos veces que pongamos la contraseña del usuario.

Con la opción -c creamos el fichero, si este fichero ya existe y solo queremos agregar un nuevo usuario usaremos el comando pero sin la opción -c

Una vez tenemos creado el fichero de contraseñas y ya tenemos un usuario creamos, si no tenemos el fichero, o editamos el fichero .htaccess y ponemos lo siguiente.


AuthType Basic
AuthName "Mi Sitio Seguro"
AuthBasicProvider file
AuthUserFile /ruta/completa/ficheroUsuarios
Require valid-user

view raw

.htaccess

hosted with ❤ by GitHub

En este caso estoy estableciendo una autentificación basica basada en fichero y se require un usuario valido para poder acceder al sitio.
Mas información http://httpd.apache.org/docs/2.2/howto/auth.html

Error 404 personalizado – Apache Tips, PHP Tips

Deutsch: Bildschirmfoto eines 404-Fehlers bei ...
Image via Wikipedia

Una de las maneras de obtener información del servidor donde tenemos alojada nuestra web es solicitando una pagina que no exista y así nos devuelva la pagina
que tiene el servidor por defecto de pagina no encontrada en la cual suele venir el modelo versión y demás detalles. Una solución rápida para esto es crear
nuestra pagina de error 404. Para ello tendremos que editar el fichero .htaccess en la raíz de nuestra pagina web y poner lo siguiente:
Nota: Consideramos que el servidor web es apache

ErrorDocument 404 /404.php

Con esto le estamos diciendo que cuando se produzca un error 404 nos muestre la pagina 404.php
Dicha pagina la podemos poner como queramos y el mensaje que queramos.
Otra opción que tenemos, por si no queremos hacer una pagina de error es pasarle directamente el mensaje a la configuración

ErrorDocument 404 "Lo sentimos la pagina web solicitada no existe"

Lo mismo que con el 404 ( pagina no encontrada ) lo podemos hacer con otros codigos como el 403 y demás.

Ahora bien, hay un caso, que tenemos que tener cuidado, pongamos que hacemos la típica aplicación en la cual tenemos que estar registrados para acceder a las secciones y queremos evitar
que nos accedan directamente a las paginas. La programación de la cabecera de los ficheros podría ser

if ( session_id != null ) {
    session_regenerate_id();
} else {
    session_start();
}
if (!$_SESSION['auth']) { 
// Redirección a la pagina
    header("Location:404.php"); // Redirigimos a la pagina de error o a la que queramos
    exit(0);
}

Imaginemos que queremos crear una función para no tener que escribir todo esto en cada cabecera, y lanzamos esa función en cada pagina, y pensamos que tenemos que cambiar la ruta del
header para cada sección. A la vez pensamos que hemos hecho la redirección 404 en el .htaccess como a continuacion:

header("HTTP/1.0 404 Not Found"); // Esta manera
header("Status: 404 Not Found"); // O esta manera

Y decimos mira mando un header de 404, este me lo interpreta el .htaccess y me manda a la pagina
seleccionada… ERROR eso no funciona, y para colmo decir que no necesitaríamos hacer nada mas ya que esta funcionaria dentro de las carpetas, siempre y cuando no existiera la pagina 404.php, y si no ahí va un truco, que el header apunte a notfound.html, esta va a ser una pagina que no crearemos en ningún sitio, el header la llamara, como no existe hará que el .htaccess lance la pagina 404.php que tenemos en la raíz

+ Info