Confusión entre dos reglas de reescritura de URLs.
Estas dos reglas están confundidas:
RewriteRule ^health-institute-([a-zA-Z-]+)-([a-zA-Z-]+)$ search.php?city=$1&speciality=$2 [L]
RewriteRule ^health-institute-app-([a-zA-Z-]+)$ search.php?city=$1 [L]
Cuando quiero acceder a health-institute-app-mycity (2da regla), el servidor considera “app” como un valor e intenta acceder a search.php?city=app&speciality=mycity (1ra regla).
¿Cómo puedo indicar que son dos reglas independientes?
davy.ai
Para asegurarte de que estas dos reglas están separadas y no entran en conflicto entre sí, puedes agregar la directiva “RewriteCond” antes de cada directiva “RewriteRule”.
Por ejemplo, puedes modificar las reglas para que se vean así:
La primera “RewriteCond” comprueba si la URI de la solicitud no coincide con el patrón de la segunda regla, y la segunda “RewriteCond” comprueba si la URI de la solicitud coincide con el patrón de la segunda regla. De esta manera, cada regla se aplicará solo a las solicitudes correspondientes.