Tag Archives: htaccess

Modificar htaccess en PrestaShop 1.5

Para los que empezáis a usar PrestaShop 1.5 y ya habíais usado PrestaShop 1.4, os habréis dado cuenta, que ya no está la opción de añadir cambios propios al .htaccess.

En PrestaShop 1.4, en Back Office > Herramientas > Generadores, veíamos lo siguiente:

generar htaccess prestashop 1.4

En Configuración específica, añadíamos las sentencias que necesitábamos, pulsábamos Generar el archivo .htaccess, y automáticamente se generaba el htaccess con la configuración de PrestaShop, más las sentencias que nosotros hayamos añadido en la configuración específica.

En PrestaShop 1.5 y versiones superiores ha cambiado un poco. Ya no tenemos una sección en el Back Office para este fin, pero sigue siendo muy fácil. Ahora tan solo es necesario editar el fichero .htaccess directamente desde el FTP, y añadir lo que necesitamos en dicho fichero. Pero ojo, es muy importante hacerlo después de la siguiente línea:

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

Si tenéis algo que añadir al .htaccess. debéis añadirlo después de esta linea, sin borrar esta línea. De esta forma cuando PrestaShop genere cambios en el .htaccess, conservará todo lo que se haya añadido después de dicha línea, y sus cambios, solo los hará, desde el principio del fichero, hasta llegar a esta línea.

Si quieres aprender aún más sobre este tema, puedes leer otros artículos sobre htaccess.

Activar las URLs amigables en Prestashop

No es la primera vez que en aquihaydominios.com hablamos de las URLs amigables ni del fichero .htaccess. Hoy no vamos a explicar estos 2 conceptos, si no que vamos a aplicarlos a Prestashop.

Para empezar tan solo tienes que crear un fichero vacío llamado .htaccess en el raíz de tu Prestashop. Lo normal si tienes el alojamiento web con nosotros es que tengas que crearlo dentro de /httpdocs. No olvides darle permisos 777. Leer más

Cómo poner una página de mantenimiento en tu web

Hay veces que por algún motivo, necesitas trabajar en tu web, pero no quieres que esté online y los usuarios vean los cambios que estás haciendo. En ese caso, veamos cómo poner una página de mantenimiento en tu web haciendo uso del fichero .htaccess.

Si tienes un fichero .htaccess creado dentro del directorio /httpdocs, tendrás que editarlo. En caso de no tenerlo, deberás crearlo. El código que debes añadir en este fichero es el siguiente:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/paginaDeMantenimiento.html$
RewriteCond %{REMOTE_ADDR} !^TuIpPublica
RewriteRule $ /paginaDeMantenimiento.html [R=302,L]

Dentro de este código solo hay 2 parámetros que deberás cambiar:

  • paginaDeMantenimiento.html
    Aquí deberás poner el nombre de la página html que hagas para indicar que tu web está en mantenimiento. Puede ser lo compleja que quieras o muy simple, bastaría con poner un texto que indique: “Estamos realizando labores de mantenimiento. Gracias”
  • TuIpPublica
    Aquí debes poner tú ip. Tu ip pública actual es: 54.84.236.168
    Esto se hace para que solo desde tu ip pública se pueda ver la web actual y no la página de mantenimiento. De este modo, mientras tu estás trabajando en tu web, los demás verán tu página de mantenimiento paginaDeMantenimiento.html

Ya que tu verás la web con normalidad, te preguntarás: ¿Cómo puedo comprobar que los demás no verán mi web si no la página de mantenimiento? Tienes varias opciones.

  • Comprobar tu web desde otra conexión. No sirve desde otro ordenador si está conectado al mismo router, debe ser otra conexión. Por ejemplo: si tienes ADSL en casa y además tienes conexión en el móvil con otra tarifa de datos (no vale si está conectado al mismo router por wifi) podrás comprobar tu web desde el móvil.
  • Usar un navegador anónimo de los que hay por internet. De esta forma, desde tu propia conexión, puedes ver otras páginas pero sin usar tu ip.

Por otro lado, para los que usáis WordPress podéis usar otra forma. Tan solo tenéis que añadir en el fichero functions.php de vuestro tema el siguiente código:

function modo_mantenimiento() {
if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
die('Estamos realizando labores de mantenimiento...');
}
}
add_action('get_header', 'modo_mantenimiento');

De modo que si estáis logados en WordPress podréis ver la página y en caso contrario, veréis el mensaje que pongáis en la función die.

Así de fácil, de todos modos si tienes alguna consulta no dudes en usar la zona de comentarios. Y si el post te ha sido de utilidad o piensas que le puede servir a alguien, te agradecemos que lo compartas en tus redes sociales. ¡Gracias!

Mover WordPress de carpeta

A veces nos surge la necesidad de mover WordPress de carpeta (o directorio) por una nueva reestructuración de la Web. Estos son los pasos a seguir:

  1. Crea el nuevo directorio (o carpeta).
    Si lo vas a mover al directorio / (raíz)  no es necesario. Asegúrate que en la nueva ubicación no existen ficheros con el mismo nombre que hay en el blog. Los más comunes que se pueden repetir son index.php y .htaccess (si ya existen, hazles una copia de seguridad o renómbralos).
  2. Accede al panel de administración de tu blog (tudominio.com/actualDirectorio/wp-login.php).
  3. Ve a Ajustes > General.
  4. Cambia la Dirección de WordPress (URL) por la nueva ruta.
  5. Si tu blog WordPress es la página principal del tu sitio, también deberás cambiar la ruta de Dirección del sitio (URL).
  6. Pulsa en Guardar los cambios.
  7. Una vez hecho esto, aún no podrías acceder. Te recomendamos que desde un FTP borres el directorio wp-content/cache que se volverá a generar automáticamente cuando funcione la nueva dirección.
  8. A continuación, ya podemos mover todo lo que estaba en el antiguo directorio al nuevo (o raíz).
  9. Ya puedes acceder al panel de administración con la nueva ruta: (tudominio.com/nuevoDirectorio/wp-login.php).
  10. Una vez dentro ve a Ajustes > Enlaces permanentes y modifica los Ajustes habituales como desees tenerlo, para que el fichero .htaccess que se puede ver más abajo se modifique con los nuevos cambios. Si WordPress tiene permisos modificará este fichero automáticamente, te recomendamos que lo compruebes desde un FTP, y que para asegurarte copies este contenido en dicho fichero. Normalmente es algo así:
    RewriteEngine On
    RewriteBase /nuevoDirectorio/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /nuevoDirectorio/index.php [L]
  11. Por último, comprueba que tal se ve tu blog en el nuevo directorio, si ves que hay imágenes, o ficheros adjuntos… que no se ven, o no encuentras la ruta al hacer clic en ellos, tendrás que acceder a la base de datos (desde phpmyadmin por ejemplo) y mirar tabla por tabla si hay registros con la ruta antigua y cambiarlos manualmente.
    Hay algunos plugins que son capaces de hacer esta operación, si te decides a hacerlo así no olvides hacer copia de seguridad de la base de datos antes, de todos modos si no son muchos registros, te recomiendo que lo hagas manualmente.

¿Es este tu caso? ¿Necesitas hacer otro tipo de traslado? ¿Algún otro método? Esperamos tus comentarios.

Forzar https usando htaccess

A veces necesitamos forzar que una URL siempre sea https por motivos de seguridad, por ejemplo una URL de login o una URL para introducir tarjetas de crédito.

Esto se puede conseguir desde el .htaccess con el siguiente código:

#Forzar https
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} identificacion [OR]
RewriteCond %{REQUEST_URI} forma-pago
RewriteRule ^(.*)$ https://www.aquihaydominios.com/$1 [R=301,L]

En nuestro caso, hemos añadido dos: la de identificación y la de forma-pago. En los dos casos, será redirigirá automáticamente a https. Además añadimos R=301 para indicar a Google que es una redirección permanente.

Si por el contrario, queremos que una página nunca sea https, tendríamos que indicar lo siguiente en el .htaccess.

RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_URI} fin-pedido
RewriteRule ^(.*)$ http://www.aquihaydominios.com/fin-pedido [R=301,L]

Hay que tener en cuenta, que en ambos casos se usa la cláusula SERVER_PORT para indicar el puerto por defecto del http, y https, en nuestro caso el http va por el 80, y el https por el 443

¿Se te ocurre otra forma de hacerlo? ¿Cómo harías para forzar que todas fueran http menos unas cuantas? (ya que, de este modo, al estar en una https e ir a otra URL haciendo clic en un enlace, se mantiene el https, a no ser que sea fin-pedido, que se especificó que solo fuera http).

¡Ánimo, piensa y cuéntanos!

Forzar www usando htaccess

Una de las formas de conseguir URL Canónicas es forzar el uso de las www en nuestros dominios.

Para ello basta con añadir el siguiente código en nuestro archivo .htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.aquihaydominios\.com [NC]
RewriteRule ^(.*)$ http://www.aquihaydominios.com/$1 [R=301,L]

Además es recomendable seleccionar un dominio preferido en Google Webmaster Tools

¿Aplicas estas prácticas en tu Web? ¿Conoces alguna forma mejor de hacerlo?

URL amigables en WordPress

Hola a todos,

mientras los diseñadores trabajan en la web principal de aquihaydominios.com me voy a encargar del blog.

Lo primero que vamos y creo que es fundamental para el blog es tener URL amigable. También las tendremos en la página principal, pero ahora nos vamos a centrar y vamos a comentar como tenerlas en el blog.

Al tratarse de un blog WordPress es muy fácil, ya que hay numerosos plugins que se encargan de transformar las URL con variables en URL amigables, fáciles de leer, y mejor valoradas por los buscadores como Google para posicionarlas.

En este caso vamos a utilizar Permalinks, que viene preinstalado en la mayoría de versiones WordPress.

Para ello en el panel de control de WordPress nos vamos a:

Ajustes ->  Enlaces permanentes ->  Opciones de los enlaces permanentes

Allí podréis ver algo como esto:

En nuestro caso vamos a optar por Estructura personalizada, donde vamos a poner /%postname%/ para que solo aparezca el título que le demos al artículo, que deberá ser lo más descriptivo posible, utilizando el menor número de palabras posible.

Es muy común ver blog WordPress con la opción día y nombre, no es que sea una mala opción, incluso tengo algún blog con esa opción marcada,  pero en mi opinión, la fecha en la url solo sirve para despistar a los buscadores como Google, no aportan valor útil para el posicionamiento, y últimamente aunque aun no lo he podido demostrar, afecta pero no de forma positiva al posicionamiento.

Si se preguntan porque mantengo alguno de mis blog con esa opción, la respuesta es porque al tener ya varios años, un cambio en toda la estructura de organización de las URL si que podría afectar de forma negativa.

También pueden optar por cambiar la estructura personalizada,  otra buena opción sería /%category%/%postname%/
Si tienen una buena categorización de su blog, es una buena opción. Tengan en cuenta que en ese caso no es recomendable tener caracteres extraños en sus categorías, así como tampoco es recomendable que las tengan en el título del artículo.

Aunque probablemente para hacer todo esto en su blog no sea necesario, es importante mencionar el papel que tiene el fichero oculto .htaccess . Es el encargado de transformar una url amigable en una url legible o amigable según se configure. En nuestro caso, tendremos un fichero .htaccess en el raíz / y otro en el directorio /blog donde tenemos alojado el blog WordPress. Si las reglas son las mismas para el / que para /blog, basta con tener un único .htaccess en el raíz.

Aquí podéis ver nuestra configuración:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

Por último mencionar que estas son las reglas que Apache tendrá en cuenta a la hora de publicar o presentar las url. Comentar que son reglas de conversión, pero no excluyen a la url no amigable, es decir, las dos direcciones siguen siendo válidas:

http://www.aquihaydominios.com/blog/?p=15

es lo mismo que:

URL amigables en WordPress

En otro artículo explicaré más cosas sobre las url amigable htaccess, es decir, como hacer que una web tenga url amigable usando htaccess sin la necesidad de estar usando WordPress o cualquier otro CMS.

¿Tienes URL amigables en tu blog? ¿Usas  estructura personalizada? ¿De qué tipo?

Siéntete libre de preguntar o comentar lo que quieras.