Pregunta

Me pregunto, ¿es posible eliminar index.php desde una URL? Básicamente en algunas páginas de un sitio que tengo esta estructura,

http://www.domain.com/index.php/members/register , pero otras páginas tengo estructuras de URL como esta, http: //www.domain .com / categoría / productos / id / 5 , quiero saber que es posible con .htaccess para eliminar el index.php y barras al atribuidas cuando sea necesario? ¿Cómo voy a ir haciendo esto?

¿Fue útil?

Solución

Sí, se puede. Con esta regla cualquier /index.php solicitada será removido:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.php[/?\ ]
RewriteRule ^index\.php(/(.*))?$ /$2 [L,R=301]

Sin embargo, se debe utilizar mejor las direcciones URL adecuadas desde el principio para que la aplicación está sirviendo documentos cuyos enlaces no contienen la /index.php.

Otros consejos

Si desea globalmente reescritura index.php / controlador / acción

Esta configuración .htaccess debe hacer el truco:

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

Esta configuración controles de Apache si existe el archivo / directorio en el disco o no (es decir, la solicitud coincide con un recurso real en el disco), y volver a escribir la solicitud a su controlador frontal si es necesario.

Así http://www.domain.com/resources/image.png debe devolver el recurso de imagen. Y http://www.domain.com/user/show/5 debe volver a escribir de forma transparente a http://www.domain.com/index.php/user/show/5

Con esta configuración, puede eliminar todas las referencias index.php en sus URL de la aplicación y dejar la reescritura al servidor web.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top