¿Es posible utilizar .htaccess para enviar URL con números de seis dígitos a un script pero manejar todas las demás URL no válidas como 404?

StackOverflow https://stackoverflow.com/questions/73123

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Es posible utilizar .htaccess para procesar las URL de seis dígitos enviándolas a un script, pero manejar todas las demás URL no válidas como un error 404?

Por ejemplo:

http://mywebsite.com/132483

sería enviado a:

http://mywebsite.com/scriptname.php?no=132483

pero

http://mywebsite.com/132483a or
http://mywebsite.com/asdf

se manejaría como un error 404.

Actualmente tengo esto funcionando a través de un script PHP 404 personalizado, pero es un poco complicado.Me parece que .htaccess podría ser una solución más elegante, pero no he podido determinar si es posible.

¿Fue útil?

Solución

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^([0-9]{6})$ scriptname.php?no=$1 [L]
</IfModule>

Para conservar la URL limpia

http://mywebsite.com/132483

mientras sirve scriptname.php use solo [L].Usar [R=301] te redirigirá a tu scriptname.php?no=xxx

Puede que esto le resulte útil http://www.addedbytes.com/download/mod_rewrite-cheat-sheet-v2/pdf/

Otros consejos

En su archivo htaccess, coloque lo siguiente

RewriteEngine On
RewriteRule ^([0-9]{6})$ /scriptname.php?no=$1 [L]

La primera línea enciende el motor mod_rewrite.Los corchetes () colocan el contenido en $1; los () sucesivos llenarían $2, $3...etcétera.El [0-9]{6} dice buscar una cadena de exactamente 6 caracteres que contenga solo los caracteres del 0 al 9.

La [L] al final hace que esta sea la última regla; si se aplica, el procesamiento de la regla se detendrá.

Oh, ^ y $ marcan el inicio y el final del uri entrante.

¡Espero que ayude!

Sí, es posible con mod_rewrite.Hay toneladas de buenos tutoriales de mod_rewrite en línea. Una búsqueda rápida en Google debería arrojar la respuesta en poco tiempo.

Básicamente, lo que querrá hacer es asegurarse de que la expresión regular que utilice solo busque dígitos y ningún otro carácter y asegurarse de que la longitud sea 6.Luego redirigirá a scriptname.?no= con el número que capturó.

¡Espero que esto ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top