Todos los de mi Url de mi instalación de Magento requieren index.php en ellos, como:

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

El problema es que el sistema por defecto de los enlaces a URLs como

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

Que se vean más bonitas de todos modos. Supongo que esto es una reescritura problema en el .htaccess, pero como a juguetear con que en el pasado me ha dado 500s, me gustaría pedir a los chicos de primero.

Cambiar el SEO configuración, vaciar la caché de configuración, y la nueva indexación de direcciones Url no funciona como se sugiere aquí.

InformationsquelleAutor delwin | 2012-05-06

8 Comentarios

  1. 86

    Esto puede ser viejo, pero me pueden escribir lo que he aprendido abajo.
    Así que de todos modos me hizo de esta manera.

    ———->

    Antes de empezar, asegúrese de que el Apache vuelve a escribir módulo está habilitado y, a continuación, siga los pasos a continuación.

    1) inicie Sesión en su área de administración de Magento, a continuación, vaya a Sistema > Configuración > Web.

    2) Vaya a la Insegura y Seguro pestañas. Asegúrese de que el sin garantía y SeguroUrl de la Base opciones de tener tu nombre de dominio dentro de ella, y no dejar la barra diagonal en la parte final de la URL. Ejemplo: http://www.yourdomain.co.uk/

    3), Mientras que todavía en el Web página, vaya a Optimización de Motores de Búsqueda y seleccione la ficha debajo de la Uso del Servidor Web Reescribe opción.

    4) Vaya a la Seguro ficha de nuevo (si no está ya en ella) y seleccione en el el Uso Seguro de las URLs en el Front-End opción.

    5) Ahora ir a la raíz de su sitio web de Magento carpeta y utilizar 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>

    Guardar el .htaccess y reemplazar el archivo original. (POR FAVOR, ASEGÚRESE DE COPIA DE SEGURIDAD ORIGINAL .htaccess ANTES de jugar CON ÉL!!!)

    6) Ahora ir a Sistema > Gestión de la Caché y seleccione todos los campos y asegúrese de que el Acciones desplegable se establece en Actualizar, y luego enviar. (Esto va de curso de actualización de la memoria Caché.)

    ———->

    Si esto no funciona, por favor siga estos pasos adicionales.

    7) Ir a Sistema > Configuración > web de nuevo. Esta vez busque la Actual Ámbito de Configuración y seleccione el sitio web en el menú desplegable. (Esto es, por supuesto, es establecer configuración Predeterminada)

    8) asegúrese de que la Insegura y Seguro campos contienen el mismo dominio que el anterior fichero de configuración por Defecto.

    9) Vaya a la Motores de Búsqueda de Optimización de y seleccione la ficha debajo de la Uso del Servidor Web Reescribe sección.

    10) una Vez que la Url de la misma, y la reescritura está habilitado guardar la página, a continuación, volver atrás y asegurarse de que todos sean marcada de forma predeterminada, a continuación, guardar de nuevo si es necesario.

    11) Repita el paso 6.

    Ahora su index.php es un problema que debe ser solucionado y todo debe ser bueno!!!

    Espero que esto ayude, y buena suerte.

    • es impresionante.. tio upvote para usted
    • ¿El orden de las líneas de la materia?
    • No estoy seguro de si el orden de las líneas de asunto, yo no me imagine que en este escenario. Para estar seguro me quedaría con el formato presentado como esto parece funcionar para una buena cantidad de personas.
    • Asegúrese de AllowOverride All es para la configuración de lo contrario su .htaccess va a ser ignorado.
    • Re AllowOverride All en las últimas versiones de Ubuntu, al menos, que se agrega a /etc/apache2/apache2.conf <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> Que reiniciar Apache: /etc/init.d/apache2 restart
    • Seguro que, al menos en Ubuntu 14.04, como predeterminada AllowOverride es ninguno, así que tenemos que cambiar «<Directorio /var/www/> Options Indexes FollowSymLinks AllowOverride None Requieren otorgado </Directorio>» a «<Directorio /var/www/> Options Indexes FollowSymLinks AllowOverride All Requieren otorgado </Directorio>», así como la reescritura de empezar a trabajar
    • Me gustaría upvote esta respuesta 10x si pudiera 😀 Gracias @Blowtar!
    • OMG !!! Gracias Juan …. Yo estaba luchando por encontrar desde 4 hrs. Voy a añadir algo más de detalle como respuesta a continuación. usted se merece upvote para ello.

  2. 25

    Siga los pasos a continuación le sirve de ayuda.

    paso 1: Ir a la carpeta raíz del sitio y usted puede encontrar el .htaccess archivo allí. Abrirlo con un editor de texto y busque la línea #RewriteBase /magento/. Simplemente reemplazarlo con #RewriteBase / sacar sólo la ‘magento/’

    paso 2: a Continuación, vaya a su panel de administración y habilitar el Reescribe(conjunto de para el Uso del Servidor Web vuelve a escribir). Lo puedes encontrar en Sistema->Configuración->Web>Optimización de Motores de Búsqueda.

    paso 3: a Continuación, vaya a la Caché de la página de gestión (sistema de gestión de la caché ) y la actualización de la memoria caché y actualizar para comprobar el sitio.

    • Cambiar un comentario en el paso 1 – no tiene sentido en absoluto
    • Usted está editando un comentario….inútil.
    • para mí su trabajo después de activar el comando ( quitar el # )
    • Creo que sólo una barra diagonal (/) es el comportamiento por defecto de apache. Así que no hay necesidad de agregar esta línea, si usted no está usando un subdirectorio para su instalación de magento.
  3. 9

    Tienes que activar el mod_rewrite en apache para hacer urls limpias para trabajar

    si mod_rewrite no está en phpinfo tiene que instalar por

    sudo a2enmod rewrite
    sudo apache2ctl -l

    Que usted necesita para reemplazar la aparición de AllowOverride none a AllowOverride all ( en /etc/apache2/sites-enabled/000-default)

    Reiniciar Apache

    sudo service apache2 restart

    En Magento admin ir a System > Configuration > Web > search engine Optimization y cambio «Use Web Server Rewrites» a Sí

    • Para los futuros lectores: mi problema surgió a partir de la opción por defecto «AllowOverride» está establecido a None – esto debe ser All (para los menos molestos experiencia).
    • todavía no está funcionando.
    • Esta solucionado mi problema, con el valor predeterminado .htaccess config
  4. 7

    Cómo sobre esto en su .htaccess:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    • No hay ningún cambio. Magento almacena su acceso a var/.htaccess a pesar de que sería un problema?
    • Magento tiendas de una de sus archivos htaccess en var/.htaccess, hay varios en su directorio de árboles para evitar el peligro remoto o la lectura de ubicaciones privilegiadas. Debe tener uno en su directorio raíz del servidor.
  5. 2

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

    Tuve Ubuntu instalado un servidor con Apache, MySql y Php, así que pensé que podría saltar a la partida Crear el directorio desde el que Magento será servido de y me llegó el mismo problema como el OP, es decir, yo había «index.php’ necesaria en todas las direcciones Url (o me gustaría conseguir 404 no encontrado). Entonces volví a la Instalación y configuración del servidor Apache HTTP y después de reiniciar apache funciona perfectamente.

    De referencia, lo que 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

  6. 2

    Si las otras soluciones no funcionan, prueba este:

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

    Reemplazar

        #RewriteBase /magento/

    con

        RewriteBase /

    Paso 2:

    Añadimos las siguientes líneas (incluido excluir admin porque backend necesidades 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 el caso de que aún no funciona, vuelva a comprobar la configuración de Magento:
    Sistema->Configuración->Web>Optimización de Motores de Búsqueda. Vuelve a escribir debe estar habilitado.

  7. 1

    He probado de todo en el post, pero nada había funcionado.
    Luego me cambió la .htaccess fragmento que ErJab puso a leer:

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

    De la línea fija para mí. donde *folder_name* es el magento carpeta raíz.

    Espero que esto ayude!

  8. 1

    Principalmente Si está utilizando un sistema Basado en Linux Como ‘Ubuntu’ y esto sólo es sugerido para localhost usuario para el servidor.

    De seguir todos los pasos que se mencionan en las respuestas anteriores. +

    Compruebe en la configuración de Apache para él. (AllowOverride All)
    Si AllowOverride valor es ninguno, a continuación, cambia a Todos y reiniciar apache de nuevo.

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

    Hágamelo saber si este paso ayuda a nadie. Como se puede ahorrar tiempo si usted encuentra que es anterior.

    Cómo quitar index.php a partir de Url?

    Estoy agregando las líneas exactas de mi archivo htaccess en localhost.
    para su 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]

    Imágenes son para algunos usuarios que entienden fácilmente a partir de la imagen del texto:

    Cómo quitar index.php a partir de Url?

    • Imagen añadida para una mejor comprensión para los principiantes

Dejar respuesta

Please enter your comment!
Please enter your name here