htaccess ayuda, la eliminación de una cadena a partir de la URL
-
29-09-2019 - |
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?
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.