Jump to content

[SOLUCIONADO] Problemas con URL amigables en localhost


Recommended Posts

Hola amigos,

 

estoy llevando a cabo mi primera instalacion de PrestaShop y he estado trasteando con sus opciones durante un tiempo.

Ayer me propuse activar las URL amigables en mi PrestaShop, el cual esta alojado en un servidor Apache2 en una maquina con Lubuntu, y para mi sorpresa no funcionaba como los manuales prometian. De manera que me aventure por los foros a buscar soluciones, y esto es lo que encontre:

http://www.prestasho...__fromsearch__1

 

http://www.prestasho...__1#entry946868

 

http://www.prestasho...bles-500-error/

 

y mas....

 

 

He seguido todo tipo de soluciones, ya sea añadiendo la linea " RewriteBase /" Despues de "<IfModule mod_rewrite.c>", poniendo el .htaccess que se propone en un post, generandolo de 0 de nuevo, etc, etc, etc....

He comprobado mi info.php y estos son mis modulos activos (mod_rewrite entre ellos):

core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_status

 

Tambien he tratado de reinstalar apache2 y nada... He probado todas las combinaciones de opciones (que son solo 4) con la opcion URL amigables activas, lo maximo que he conseguido es que al escribir /localhost/prestashop/ en el buscador no me lance directamente un 404, cuando sigo uno de los links que se presentan en la pagina principal recibo este error.

 

No se cual puede ser el problema, os dejo mi .htaccess talcual me lo deja el propio PrestaShop:


# ~~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>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule . - [E=REWRITEBASE:/prestashop2/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
# Images
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^c/([a-zA-Z-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^.*$ - [NC,L]
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>
#If rewrite mod isn't enabled
ErrorDocument 404 /prestashop2/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

 

Gracias de antemano

 

 

EDIT: Solucionado, mirar 2 posts mas abajo :D

Edited by gienini (see edit history)
Link to comment
Share on other sites

Al fin!

 

He conseguido que funcione mi Prestashop en servicio local con la funcionalidad "URLs amigables" en Lubuntu. Finalmente he creado un host virtual y me he dado cuenta que puedo modificar un parametro de la configuracion, que de otra manera no se como se consigue.

 

Os propongo un pequeño tutorial pra montar un host virtual con apache2 y Ubuntu:

 

 

 

 

Para empezar modificamos el fichero que contiene los hosts alojados por esta maquina:

 

$sudo nano /etc/hosts

 

Y agregamos esta linea (manteniendo el contenido original):

 

127.0.0.1 prueba.test

 

Donde pone prueba.test es la direccion que posteriormente introduciremos en nuestro navegador para acceder al sitio web.

Una vez realizado esto accedemos al directorio contenedor de los ficheros de configuracion de los hosts de apache2:

 

$cd /etc/apache2/sites-available/

 

Aqui disponemos de un fichero de configuracion llamado default que contiene las configuraciones que por defecto se aplican a todos los hosts de apache.

Sacamos una copia tal que asi:

 

$sudo cp default prueba.test

 

Ahora realizaremos una pequeña modificacion sobre este fichero

 

$sudo nano prueba.test

 

Buscamos el siguiente fragmento de codigo

 

ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
 Options FollowSymLinks
 AllowOverride all
</Directory>
<Directory /var/www/>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride all
 Order allow,deny
 allow from all
</Directory>

 

 

 

Y lo modificamos para que quede asi:

ServerAdmin webmaster@localhost

ServerName prueba.test
DocumentRoot /var/www/prueba.test/

<Directory />
 Options FollowSymLinks
 AllowOverride None
</Directory>

<Directory /var/www/prueba.test>
 Options Indexes FollowSymLinks MultiViews
AllowOverride all
 Order allow,deny
 allow from all
</Directory>


 

 

Cuando hayamos terminado todo esto ejecutamos el comando para que Apache tome y monte nuestro virtual host

 

$sudo a2ensite prueba.test

$sudo service apache2 force-reload

 

 

Una vez hecho esto deberíamos poder acceder a /prueba.test/ desde nuestro navegador sin ningun problema

Edited by gienini (see edit history)
  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...