Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

309
Views
.htaccess: bonita URL con cualquier número + nombres de parámetros


Hola ! Sé que ya hay muchos temas sobre la reescritura de URL y, sinceramente, juro que he pasado mucho tiempo tratando de aplicarlos a mi problema, pero no veo que ninguno de ellos se aplique perfectamente a mi situación (si encuentra lo contrario). , por favor proporcione el enlace). -----

Aquí está el problema:

Estoy aprendiendo el modelo MVC y la reescritura de URL y tengo mi URL así:

 http://localhost/blahblahblah/mywebsite/index.php?param1=value1&param2=value2&param3=value3 ... etc ...

Lo que quiero (para algunos objetivos de plantilla MVC) es tener este tipo de URL:

 http://localhost/blahblahblah/mywebsite/value1/value2/value3 ... etc ...

-----

Cualesquiera que sean los nombres de los parámetros y cualesquiera que sean los valores.
Esto es lo más esencial para lo que no puedo encontrar una solución.

(Además, no se preocupe por el host local, bla, bla, bla, esto tiene que funcionar incluso en sitios web distantes, pero confío en que funcionará bien en el sitio web en línea, ya que esta parte de la URL puede no tener importancia en lo que quiero hacer)

Muchas gracias por su tiempo si me puede ayudar a ver más claro en lo que tengo que hacer.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Si el archivo .htaccess está ubicado en la raíz del documento (es decir, efectivamente en http://localhost/.htaccess ), entonces deberá hacer algo como lo siguiente usando mod_rewrite:

 RewriteEngine On RewriteRule ^(blahblahblah/mywebsite)/(\w+)$ $1/index.php?param1=$2 [L] RewriteRule ^(blahblahblah/mywebsite)/(\w+)/(\w+)$ $1/index.php?param1=$2&param2=$3 [L] RewriteRule ^(blahblahblah/mywebsite)/(\w+)/(\w+)/(\w+)$ $1/index.php?param1=$2&param2=$3&param3=$4 [L] # etc.

Donde $n es una referencia inversa al grupo capturado correspondiente en el patrón RewriteRule anterior (primer argumento).

UDPATE: \w es una clase de carácter abreviado que coincide con az , AZ , 0-9 y _ (guion bajo).

Se requiere una nueva directiva para cada número de parámetros. Podría combinarlos en una sola directiva (compleja), pero tendría muchos parámetros vacíos cuando solo se pasaran unos pocos parámetros (en lugar de no pasar esos parámetros en absoluto).

Supongo que sus URL no terminan en una barra inclinada final.

Sin embargo, si el archivo .htaccess está ubicado en el directorio /blahblahblah/mywebsite , entonces las directivas podrían simplificarse un poco:

 RewriteRule ^(\w+)$ index.php?param1=$1 [L] RewriteRule ^(\w+)/(\w+)$ index.php?param1=$1&param2=$2 [L] RewriteRule ^(\w+)/([\w]+)/([\w]+)$ index.php?param1=$1&param2=$2&param3=$3 [L] # etc.

No utilice parámetros de URL (método alternativo)

Un enfoque alternativo es no convertir los segmentos de ruta en parámetros de URL en .htaccess y, en su lugar, simplemente pasar todo a index.php y dejar que su secuencia de comandos PHP divida la URL en parámetros. Esto permite cualquier número de parámetros.

Por ejemplo, su archivo .htaccess se vuelve bastante más simple:

 RewriteRule ^\w+(/\w+)*$ index.php [L]

(Esto supone que el archivo .htaccess se encuentra en el directorio /blahblahblah/mywebsite ; de lo contrario, debe agregar el prefijo de directorio necesario como se indicó anteriormente).

El patrón RewriteRule simplemente valida que la URL de la solicitud tenga el formato /value1 o /value1/value2 /value1/value2/value3 etc. Y la solicitud se reescribe en index.php (el controlador frontal) para manejar todo.

En index.php , luego examina $_SERVER['REQUEST_URI'] y analiza la URL solicitada.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!