La reescritura de URL (mod rewrite) ignora los dígitos en la condición, ¿cómo hacer que tenga en cuenta los dígitos?
Todo se realiza dentro de httpd.conf, no hay .htaccess
Tengo dos condiciones simples. Si la URL contiene la cadena “talis”, se dirige a un archivo; de lo contrario, a otro.
RewriteRule talis talis.php [L]
RewriteRule . index.php [L]
Esta pieza funciona como se espera:
[dominio]/t/1/talis/s va a talis.php
[dominio]/t/1/bob/s va a index.php
Pero cuando intento poner números allí, siempre se aplica la última regla
RewriteRule talis01 talis.php [L]
RewriteRule . index.php [L]
(nota talis01)
Esto siempre irá a la segunda condición.
[dominio]/t/1/talis01/s va a index.php
[dominio]/t/1/bob/s va a index.php
davy.ai
Al agregar los números en la condición, es necesario ajustar la expresión regular utilizada en la segunda regla para excluir los casos en los que la cadena “talis” está seguida de números. Una forma de lograr esto es agregando una negación anticipada a la expresión regular:
Aquí, la primera regla coincide con “talis” seguido de cero o más dígitos, y la segunda regla coincide con cualquier URL que no contenga “talis” seguido de dígitos. La negación anticipada
(?!.*talis\d*$)
se asegura de que la segunda regla se aplique solo a URL que no coinciden con este patrón.Con estas reglas, ambas URL a continuación se dirigirán correctamente a sus respectivos archivos: