Descuento 20% Diciembre
Plugin Optimización de Imágenes Gratuito para WordPress
Jueves, 25 Septiembre 2014 23:37

Mover una instalación de PrestaShop a otra carpeta en tu Hosting

Escrito por 
CMS:  PrestaShop |  Versión:  Todas |  Nivel de dificultad:  Básico |  Tiempo estimado de lectura:  15 minutos


Mover una instalación de PrestaShop a otra carpeta en tu hostingEs posible que te hayas encontrado con el problema de que al instalar un Pack de PrestaShop (principalmente si eres cliente de Webempresa) en una carpeta diferente de la principal, y recomendada, que es public_html, luego la web no te cargue correctamente desde el dominio, por ejemplo http://tudominio.com.

Lo ideal es que si solo vas a gestionar una web en tu Hosting, la instales en la carpeta principal del mismo que es /public_html

Esto se debe a que el dominio principal (aquel que asocias cuando contratas un Hosting) busca los contenidos por defecto en la carpeta principal del Hosting que es, como hemos citado, public_html y al no encontrar ningún archivo a interpretar (index.html o index.php) devuelve un error Forbidden en tu navegador.

Forbidden
You don't have permission to access / on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Esto, que podría causarte frustración o preocupación se debe principalmente a que el Pack lo has instalado en una carpeta diferente de la citada public_html, y si bien es molesto visualmente, tiene solución, concretamente dos soluciones, ambas muy asequibles, que te vamos a explicar en este artículo.

Mover los contenidos a la carpeta /public_html

Por defecto recomendamos esta opción, de forma que los contenidos que va a cargar el dominio principal de tu Hosting se encuentren en la carpeta principal de tu Hosting que es public_html, de esta forma el proceso es transparente para ti y el usuario.

El proceso para mover los contenidos instalados en otra carpeta, de forma resumida seria:

  1. Copia de Seguridad de la web completa + base de datos.
  2. Acceder al Panel de Hosting, Archivos, Administrador de Archivos.
  3. Navegar a la carpeta donde esté la instalación de PrestaShop, por ejemplo: /public_html/web_prestashop.
  4. Seleccionar todos los archivos con la opción de cPanel (icono superior) "Seleccionar todo".
  5. Clic en el icono superior "Copiar".
  6. Se abrirá una ventana modal y abajo en la ruta, eliminar el final y dejar solo /public_html.
  7. Clic en Copiar Archivos (Copy Files).
  8. Clic en Subir un nivel (icono superior) para ver la carpeta /public_html y los archivos en ella copiados.
  9. Revisar el archivo .htaccess (usar el Editor de Código) para comprobar que las rutas que contenga apuntan ahora a /public_html.
  10. Acceder al Back Office para modificar las rutas. Puedes seguir este artículo.
  11. Una vez cambiadas las rutas en el Back Office y regenerado .htaccess, verifica la carga de la web.

Nota: Si tu archivo .htaccess por alguna razón está vacío, el siguiente código es el mínimo recomendable para que funcione. Luego, una vez accedas al Back Office y corrijas las URLs, PrestaShop se encargará de regenerarlo de forma adecuada.

# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>

RewriteEngine on
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
</IfModule>

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

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

En el siguiente vídeo te ilustramos el proceso de mover una web PrestaShop desde una carpeta a la carpeta principal de tu Hosting, que es /public_html (en cPanel).



Apuntar el dominio principal a la carpeta actual

Si por la razón que sea, no quieres tener la web de PrestaShop en la carpeta public_html, (tienes instaladas varias webs y no quieres mezclar) puedes mantener la instalación en una carpeta diferente de public_html y apuntar el dominio principal a esa carpeta de forma que desde el dominio no se visualice la ruta http://tudominio.com/web_prestashop (por ejemplo) y se muestre de forma transparente al usuario la ruta como http://tudominio.com/.

Por regla general el dominio principal de la cuenta apunta al directorio /public_html y ahí se alojan todos los ficheros y directorios de este dominio. Los dominios adicionales permiten crear un subdirectorio dentro de /public_html donde alojar los ficheros de este dominio.

Para poder mover los ficheros y directorios del dominio principal a un subdirectorio dentro de /public_html como si fuera un dominio adicional, debes de agregar los siguientes códigos al .htaccess de /public_html.

Los códigos deberás colocarlos al inicio del fichero y siempre en la carpeta /public_html y NO en la carpeta donde actualmente tengas la web /public_html/nombre_carpeta del Hosting:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?sudominio.com$
# Cambiar 'subdirectory' por el nombre del subdirectorio que quiere usar
RewriteCond %{REQUEST_URI} !^/subdirectory/
# No cambiar estas lineas.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Cambiar 'subdirectory' por el nombre del subdirectorio que quiere usar
RewriteRule ^(.*)$ /subdirectory/$1
# Cambiar sudominio.com por su nombre de dominio
# Cambiar 'subdirectory' por el nombre del subdirectorio que quiere usar
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?sudominio.com$
RewriteRule ^(/)?$ subdirectory/index.php [L]

Nota: Marcados en rojo los valores a sustituir:

  • subdirectory = carpeta donde tienes el pack PrestaShop instalado.
  • sudominio.com = Dominio Principal de tu Hosting que deberá cargar la web.

Para ejecutar este procedimiento no es necesario realizar una copia de seguridad, pues tu instalación de PrestaShop no sufre cambios o modificaciones que afecten a su funcionamiento.

En el siguiente vídeo te ilustramos el proceso de apuntar el Dominio Principal de tu Tienda PrestaShop a una carpeta diferente de /public_html.



Al final escojas el método que escojas, mover los archivos a /public_html o apuntar el dominio principal a la carpeta de tu instalación de PrestaShop, el resultado final debe ser que desde el Dominio Principal cargue la Tienda de PrestaShop correctamente.



¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop



Luis Méndez Alejo

Miembro del equipo técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Google+


Plugin Optimización de Imágenes Gratuito para WordPress