Me gustaría hacer una reescritura de URL (¿Por qué? Vea esta pregunta ) para que en lugar de que los usuarios vean direcciones como
labouseur.com/course-compilers.html
en cambio, pueden ver y usar simplemente
labouseur.com/course-compilers
(Aún mejor, tal vez debería reestructurar eso para que sean cursos / compiladores).
Estoy usando un servicio de alojamiento compartido basado en Linux para mi sitio web, por lo que no tengo control administrativo del servidor, pero sí tengo control sobre .htaccess. Las referencias que he leído en línea me parecieron poco claras, así que estoy buscando un poco de claridad y consejos aquí.
url-rewriting
htaccess
Alan
fuente
fuente
Respuestas:
En realidad, podría eliminar .html de los archivos en su servidor y establecer la configuración en htaccess para que se sirvan como archivos html, pero eso probablemente no sea lo que está buscando.
Hacer esto :
fuente
Primero, asegúrese de que apache tenga el módulo y que esté permitido en archivos .htacces, luego agregue:
Tu ejemplo requeriría
Para una estructura de directorio de un solo nivel y
Para una estructura multinivel.
Pero ten cuidado
Si tienes la estructura
Las reglas de reescritura en los
.htaccess
archivos secundarios serán relativas a su carpeta principal y puede entrar en algunas situaciones de bucle de reescritura desordenadas . ¡Asegúrate de usarRewriteCond
para evitar que sucedan si puedes!fuente
Además de las respuestas anteriores, se puede usar
([\w-]+)
Permite letras, dígitos con un guión (-).(.*)
reescribirá cada solicitud independientemente, lo que puede ser impotente en otras reglas siguientes que causen un error interno del servidor al acceder.fuente
RewriteRule
patrón es una mejora sobre la respuesta aceptada para el ejemplo específico dado en la pregunta, sin embargo, no coincidirá con el caso más general cuando hay más de un segmento de ruta, por ejemplo./path/to/course-compilers
. Incluya laL
bandera para disminuir el impacto en las siguientes reglas. Si bien el(.*)
patrón es innecesariamente general, es poco probable que cause problemas graves, debido a la condición de que el archivo existe.No tiene que usar un archivo .htaccess para lograr esto. Simplemente estructura tus archivos en directorios, y en lugar de usar "labouseur.com/course-compilers.html", simplemente nombra el archivo index.html y colócalo en un directorio llamado "compiladores del curso". Luego, cuando apunta a ese directorio, el índice se sirve de forma predeterminada, pero no se mostrará en la URL. Así que podría escribir sus enlaces como "labourseur.com/course-compilers" y todo estará bien.
No se requiere acceso.
fuente