Archivo de la categoría: Apache

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

Configurar Apache para que funcione con nuestro Dropbox

Dropbox se ha convertido en la solución principal que usamos la mayoría de nosotros para almacenamiento en la nube, no voy a entrar si es mejor o peor que otros (Box, Wuala, Ubuntu One, Google Drive), sino que es el que mejor compatibilidad tiene entre múltiples sistemas y es el que muchas aplicaciones implementan como servicio.

Tengo una cuenta de Dropbox desde hace tiempo, y la verdad no la usaba mucho, últimamente me decantaba mas por usar Box, pero en las ultimas semanas, he ido de un lado a otro y he tenido que buscarme una solución para poder trabajar en múltiples ordenadores, continuando mi trabajo donde lo había dejado y sincronizado. Aunque generalmente uso para sincronizar el trabajo Git, me he visto en la situación que no he podido realizar unos commits operativos, por lo tanto he tenido que recurrir a esta opción para tenerlo todo sincronizado.

El escenario

Las maquinas que he usado son o bien Linux, o Mac, en el caso de los Windows… lo siento no suelo usarlo para desarrollar.

Vamos a suponer que todos tenemos Dropbox, si no os podéis hacer una cuenta de las gratuitas, en la cuenta de Dropbox, he creado una cuenta llamada Devel.

Instalamos Dropbox, si no lo tenemos instalado en nuestro ordenador, y en mi caso como no me interesa sincronizar nada mas que la carpeta Devel, suelo hacer una sincronización selectiva y decir que solo me sincronice esta carpeta.

Una vez instalado, tanto en Linux la carpeta de Dropbox se nos instala en «/home/nuestroUsuario/Dropbox», en Mac se instala en «/Users/nuestroUsuario/Dropbox».

Ahora, si estamos en nuestro equipo principal de desarrollo copiamos y pegamos las carpetas principales de nuestros proyectos dentro de la carpeta «Devel», así se nos subirá todo a nuestra carpeta de Dropbox.

Configurando Apache

En linux

Los proyectos que hemos subido, por lo menos en mi caso, son proyectos PHP, alguno de los cuales necesito probarlos en Apache,  para hacer que nuestros proyectos en Dropbox funcionen en Apache los mas recomendable es instalar el modulo Userdir. Para hacerlo abrimos una consola y ejecutamos el siguiente comando para activar el modulo

sudo a2enmod userdir

Una vez habilitado el modulo este nos dira que reiniciemos apache, no lo hacemos aun, ya que tenemos que configurar este modulo, ya que por defecto este nos habilita probar los proyectos o web que estén situados en la carpeta public_html ubicada en nuestro home.

En la terminal editamos el fichero de configuración userdir.conf

vim /etc/apache2/mods-available/userdir.conf

El archivo original es asi

<IfModule mod_userdir.c>
    UserDir public_html
    UserDir disabled root
    <Directory /home/*/public_html>
        AllowOverride FileInfo AuthConfig Limit Indexes
        Options MultiViews Indexes SymLinksIfOwnerMatch
        IncludesNoExec
        <Limit GET POST OPTIONS>
            Require all granted
        </Limit>
        <LimitExcept GET POST OPTIONS>
            Require all denied
        </LimitExcept>
    </Directory>
</IfModule>

Lo modificamos y lo dejamos así

<IfModule mod_userdir.c>
    UserDir Dropbox/devel
    UserDir disabled root
    <Directory /home/*/Dropbox/devel>
        AllowOverride All
        Options MultiViews Indexes SymLinksIfOwnerMatch
        IncludesNoExec
        <Limit GET POST OPTIONS>
            Require all granted
        </Limit>
        <LimitExcept GET POST OPTIONS>
            Require all denied
        </LimitExcept>
    </Directory>
</IfModule>

Con esto habilitamos el directorio de Dropbox/devel como directorio personal de desarrollo.

Antes de reiniciar el servidor es necesario cambiar los premisos de la carpeta Dropbox. Os recomiendo agregar vuestro usuario al grupo www-data y a continuación cambiar los permisos de esta manera, y una vez cambiados ya podemos reiniciar el servidor Apache.

sudo chmod -R g+rx Dropbox

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/

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