Sí, porque el regex ^health-institute-([a-zA-Z\-]+)-([a-zA-Z\-]+)$
en la primera regla también coincide con health-institute-app-mycity
.
Usted necesita para revertir estas dos directivas, por lo que la regla más específica es la primera.
Por ejemplo:
RewriteRule ^health-institute-app-([a-zA-Z-]+)$ search.php?city=$1 [L]
RewriteRule ^health-institute-([a-zA-Z-]+)-([a-zA-Z-]+)$ search.php?city=$1&speciality=$2 [L]
(No hay necesidad de barra diagonal inversa escapar del guión cuando al inicio o al final de la clase de caracteres.)
Sin EMBARGO, el regex en el (ahora) segunda regla es potencialmente ambiguos desde el guión (-
) se utiliza para delimitar los dos valores (city
y speciality
), pero el guión también está incluido en las clases de personaje, por lo que presumiblemente ser parte de los propios valores. Sin embargo, tanto city
y speciality
no puede contener guiones, a pesar de la regex aparentemente permitir esto.
Por ejemplo, ¿cómo debe una solicitud de health-institute-foo-bar-baz-qux
ser resueltos? Desde el cuantificador +
es codicioso, esto en la actualidad como resultado search.php?city=foo-bar-baz&speciality=qux
. Si alguna vez hay un guión en el speciality
(como se sugirió que esto podría ser el caso por el regex) nunca será igualado.
health-institute-foo-bar-baz-qux
resolver? Puede elcity
contienen guiones?