.htaccess magento url-rewriting e-commerce

.htaccess - ¿Cómo eliminar index.php de las URL?



magento url-rewriting (8)

Todas mis URL en mi instalación de Magento requieren index.php en ellas, como:

http://example.com/index.php/admin/ http://example.com/index.php/customer/account/login/

El problema es que el sistema enlaza por defecto con URLs como

http://example.com/admin/ http://example.com/customer/account/login/

Que se ven más bonitas de todos modos. Supongo que esto es un problema de reescritura en .htaccess, pero como jugar con eso en el pasado me ha dado 500, me gustaría preguntarles primero.

Cambiar la configuración de SEO, vaciar la caché de configuración y reindexar las URL no funcionó como se sugiere aquí .


¿Qué tal esto en tu .htaccess:

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]


Debes habilitar mod_rewrite en apache para hacer que las URL limpias funcionen

si mod_rewrite no está en phpinfo tienes que instalarlo por

sudo a2enmod rewrite sudo apache2ctl -l

AllowOverride none reemplazar la aparición de AllowOverride none por AllowOverride all (en / etc / apache2 / sites-enabled / 000-default)

Reiniciar Apache

sudo service apache2 restart

En la administración de Magento, vaya a System > Configuration > Web > search engine Optimization y cambie " Use Web Server Rewrites " a Sí


Esto puede ser antiguo, pero también puedo escribir lo que aprendí. Entonces de todos modos lo hice de esta manera.

---------->

Antes de comenzar, asegúrese de que el módulo de reescritura de Apache esté habilitado y luego siga los pasos a continuación.

1) Inicie sesión en el área de administración de Magento y luego vaya a Sistema> Configuración> Web .

2) Navegue a las pestañas Inseguro y Seguro . Asegúrese de que las opciones de Url seguro y no seguro tengan su nombre de dominio dentro de él, y no deje la barra inclinada al final de la URL. Ejemplo: http://www.yourdomain.co.uk/

3) Mientras aún esté en la página web , navegue a la pestaña Optimización del motor de búsqueda y seleccione debajo de la opción Usar reescrituras del servidor web .

4) Navegue a la pestaña de Seguridad nuevamente (si no está ya en ella) y seleccione en la opción Usar URL seguras en el front-end .

5) Ahora vaya a la raíz de la carpeta de su sitio web Magento y use este código para su .htaccess:

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

Guarde el .htaccess y reemplace el archivo original. (POR FAVOR, ASEGÚRESE DE RESPALDAR SU ARCHIVO .htaccess ORIGINAL ANTES DE ENSAMBLAR CON ELLA !!!)

6) Ahora vaya a Sistema> Administración de caché y seleccione todos los campos y asegúrese de que el menú desplegable Acciones esté configurado en Actualizar , luego envíe. (Esto, por supuesto, actualizará el caché).

---------->

Si esto no funcionó, siga estos pasos adicionales.

7) Vaya a Sistema> Configuración> web nuevamente. Esta vez, busque el Ámbito de la configuración actual y seleccione su sitio web en el menú desplegable. (Esto es, por supuesto, está configurado en Configuración predeterminada)

8) Asegúrese de que los campos Inseguro y Seguro contengan el mismo dominio que el archivo de Configuración Predeterminada anterior.

9) Navegue a la pestaña Optimización de motores de búsqueda y seleccione debajo de la sección Usar reescrituras del servidor web .

10) Una vez que las URL son las mismas, y la reescritura está habilitada, guarde esa página, luego vuelva atrás y asegúrese de que todas estén marcadas como predeterminadas, luego vuelva a guardarlas si es necesario.

11) Repite el paso 6.

Ahora su problema con index.php debería ser reparado y todo debería estar bien.

Espero que esto ayude y buena suerte.


Hola, llegué tarde a la fiesta. Solo quería señalar que las instrucciones de http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu/ fueron realmente útiles .

Tenía el servidor de Ubuntu instalado con Apache, MySql y Php, así que pensé que podría pasar al encabezado Creando el directorio desde el cual Magento sería atendido y alcancé el mismo problema que el OP, es decir, necesitaba ''index.php'' en todas las URL (o me gustaría obtener 404 no encontrado). Luego volví a Instalar y configurar el servidor Apache HTTP y luego de reiniciar apache, funciona perfectamente.

Como referencia, me faltaba:

sudo bash -c "cat >> /etc/apache2/conf.d/servername.conf <<EOF ServerName localhost EOF"

... y

sudo a2enmod rewrite sudo service apache2 restart

Espero que esto ayude


Intenté todo en la publicación, pero nada funcionó. Luego cambié el fragmento de .htaccess que ErJab puso a leer:

RewriteRule ^(.*)$ ''folder_name''/index.php/$1 [L]

La línea anterior lo arregló para mí. donde * nombre_carpeta * es la carpeta raíz de magento.

¡Espero que esto ayude!


Principalmente si está utilizando un sistema basado en Linux como ''Ubuntu'' y esto solo se sugiere para el usuario localhost y no para el servidor.

Siga todos los pasos mencionados en las respuestas anteriores. +

Compruebe en la configuración de Apache para ello. (AllowOverride All) Si el valor AllowOverride es none, cámbielo a All y reinicie apache nuevamente.

<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>

Avísame si este paso ayuda a alguien. Como puede ahorrarle tiempo si lo encuentra antes.

Estoy agregando las líneas exactas de mi archivo htaccess en localhost. para tu referencia

Alrededor de la línea número 110

<IfModule mod_rewrite.c> ############################################ ## enable rewrites Options +FollowSymLinks RewriteEngine on ############################################ ## you can put here your magento root folder ## path relative to web root #RewriteBase / RewriteEngine On RewriteBase / RewriteRule ^index/.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

Las imágenes son para algunos usuarios que entienden fácilmente desde la imagen el texto:


Si las otras soluciones no funcionan para usted, intente esto:

Paso 1: (si su instalación está en webroot)

Reemplazar

#RewriteBase /magento/

con

RewriteBase /

Paso 2:

Agregue las siguientes líneas (inclusive excluye admin porque backend necesita index.php internamente)

RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.php$ http://www.yourdomain.com/$1 [R=301,L] RewriteRule ^index.php/(admin|user)($|/) - [L] RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

justo después de

RewriteRule .* index.php [L]

Esto funciona para mí

En caso de que todavía no funcione, revise la configuración de Magento: Sistema-> Configuración-> Web-> Optimización del motor de búsqueda. Las reescrituras deben estar habilitadas.


Siga los pasos a continuación que lo ayudarán.

paso 1: dirígete a la carpeta raíz de tu sitio y allí encontrarás el archivo .htaccess . #RewriteBase /magento/ con un editor de texto y busca la línea #RewriteBase /magento/ . Simplemente reemplázalo con #RewriteBase / saca solo el ''magento /''

paso 2: luego vaya a su panel de administración y habilite Reescribir (establezca para Usar reescrituras del servidor web). Puede encontrarlo en Sistema-> Configuración-> Web-> Search Engine Optimization.

Paso 3: A continuación, vaya a la página de administración de caché (administración del caché del sistema), actualice su caché y actualice para verificar el sitio.