Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

173
Visualizações
Use Apache para reescribir URL con parámetros de base de datos como URL agradables

Durante años, nuestros sitios web basados en bases de datos han tenido direcciones URL que se parecen a: https://www.example.com/product?id=30

Pero hoy en día, y especialmente para fines de SEO, queremos que nuestras URL sean "agradables" y se vean como: https://www.example.com/30/myproduct

Usamos Zope 2.13.x ejecutándose en Debian y usando Apache 2.4 como servidor web front-end. Sé que no mucha gente usa Zope, pero al utilizar mod_rewrite de Apache, deberíamos poder enviar la reescritura por proxy y tener buenas URL que aún pasen los argumentos de la base de datos necesarios para servir correctamente las páginas a los usuarios finales.

Solía haber un libro de cocina de Zope en el que escribí un montón de tutoriales realmente detallados sobre la funcionalidad de Zope, pero parece que ya no existe y quería compartirlo con la comunidad de SE.

Lo increíble es que esto no es específico de Zope, pero funcionará/debería funcionar con cualquier reescritura de una URL basada en parámetros en una URL agradable y es muy fácil una vez que todo funciona.

Para una total transparencia, voy a responder mi propia pregunta para que quede documentada para todos.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Usando el motor de reescritura en Apache, decida cómo quiere que sus URL se vean para el usuario final en su navegador web.

Por ejemplo, si está llamando a una base de datos y tiene una URL que se parece a

https://www.example.com/products?id=30&product_name=myproduct

pero quieres que esa URL se vea como

https://www.ejemplo.com/productos/30/miproducto

usaría una regla de reescritura de la siguiente manera:

 RewriteRule ^/products/(.*)/(.*) /products?id=$1&product_name=$2 [L,P,NE,QSA]

Para explicar eso más:

^/products/(.*)/(.*) dice que cada vez que se accede a domain.com/products, busque dos variables en los siguientes nombres de directorio, es decir, /(.*)/(.*)

Si solo quisiera una variable, haría ^/products/(.*)

Del mismo modo, si quisiera tres variables, haría ^/products/(.*)/(.*)/(.*)

A partir de ahí, debemos decirle a Apache cómo interpretar esa URL para reescribir y aún permitir que Zope (o cualquier base de datos que esté usando) pase los parámetros de URL correctos. Esa parte es:

 /products?id=$1&product_name=$2

Apache ahora tomará el primer (.*) y lo tratará como $1 . Tomará el segundo (.*) y lo tratará como $2 y así sucesivamente.

La parte entre paréntesis es extremadamente importante.

L = Esto hace que Apache deje de procesar el conjunto de reglas de reescritura si la regla coincide. Esto es importante porque no desea que Apache se confunda y comience a intentar otras reescrituras.

P = Proxy la solicitud. Esto asegura que el navegador no muestre una URL diferente a https://www.example.com/products/30/myproduct (es decir, no queremos que el usuario final vea la URL reescrita como https://www.example.com/products?id=30&product_name=myproduct

NE = Sin caracteres de escape de URL. Necesita esto para asegurarse de que la reescritura de la URL no intente escapar de los caracteres especiales como $ = & , ya que estos son importantes para los parámetros de la URL.

QSA = Esto permite que existan múltiples variables (o parámetros de URL)

Tenga en cuenta: es muy importante considerar cómo desea que se vean sus URL (las URL agradables) porque eso es lo que desea enviar a los motores de búsqueda. Si cambia la estructura de su URL, esas bonitas URL ya no funcionarán y su clasificación en los motores de búsqueda puede disminuir.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda