.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 SÍ 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 Sí 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 Sí 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 sí 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.