Sim, porque o regex ^health-institute-([a-zA-Z\-]+)-([a-zA-Z\-]+)$
na primeira regra também coincide com health-institute-app-mycity
.
Você precisa reverter estas duas directivas para a regra mais específica é o primeiro.
Por exemplo:
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]
(Não precisa de barra invertida escapar o hífen, quando no início ou no final do caráter de classe.)
No ENTANTO, a regex no (agora) a segunda regra é potencialmente ambíguo desde o hífen (-
) é usado para delimitar os dois valores (city
e speciality
), mas o hífen também está incluída em ambas as classes de personagem, então ele pode, presumivelmente, ser parte dos próprios valores. No entanto, ambos city
e speciality
não contêm hifens, apesar de o regex, aparentemente, permitindo que este.
Por exemplo, como deve um pedido de health-institute-foo-bar-baz-qux
ser resolvido? Desde o quantificador +
é ganancioso, isso irá resultar em search.php?city=foo-bar-baz&speciality=qux
. Se há sempre um hífen no speciality
(como sugerido este poderia ser o caso de o regex) que nunca será correspondido.
health-institute-foo-bar-baz-qux
resolver? Pode ocity
contêm hifens?