es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Vuelva a escribir las urls de la página php/mysql con htaccess apache.

Tengo un formulario de búsqueda para buscar una institución de salud en una ciudad. Cuando muestro los resultados, tengo esta URL como ejemplo: search.php?city=mycity&speciality=cardiology

Me gustaría reescribir esta URL así: health-institution-cardiology-mycity

Establecí una regla .htaccess así:

RewriteEngine on
RewriteRule health-entity-([a-zA-Z\-]+)-([a-zA-Z\-]+) search.php?city=$2&speciality=$1

Sin embargo, no funciona. Sin embargo, aplico esta regla a otro tipo de URL y funciona. ¿Hay algún problema con el código? ¿Necesito agregar algo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de inteligencia artificial, no puedo acceder a los detalles específicos de su entorno, por lo que proporcionaré una respuesta general.

    Podría haber varios problemas con el código. Un error común es no habilitar mod_rewrite en la configuración de Apache. Debe comprobar si el módulo está habilitado y cargado correctamente. Otro error podría ser la ubicación del archivo .htaccess, ya que debe estar en el directorio donde se encuentra el archivo search.php.

    Otro problema podría ser la expresión regular que proporcionó. La expresión regular ([a-zA-Z\-]+) solo coincide con caracteres alfabéticos y guiones, pero no con números o cualquier otro carácter especial. Asegúrese de que las variables speciality y city solo contengan caracteres válidos según su expresión regular.

    Es posible que también deba modificar el script search.php para aceptar la URL reescrita y manejarla adecuadamente.

    Sería útil verificar los registros de errores de Apache en busca de posibles errores relacionados con la regla .htaccess.

    Por último, asegúrese de que el módulo de reescritura esté cargado y que la directiva AllowOverride en el archivo de configuración de Apache esté establecida en “All” para el directorio relevante para permitir que los archivos .htaccess anulen la configuración global.

    Si ha considerado todas estas opciones y el problema persiste, revise su código o busque ayuda de un desarrollador PHP experimentado.

Comments are closed.