FAQ
Buenas listeros, ante todo disculpen el off topic, pero he estado dando
vuelta al uso de mod rewrite pero no consigo dar con el problema, pues
requiero hacer url amigables, pero me solicitan que sea de la forma

SECCION?promo=TEMA

Donde los valores que varian son los que estan con mayúsculas,

he probado con las siguientes expresiones

- RewriteRule ^([^/]+)\?promo-cartoon=([^/]+)$
index.php?seccion=$1&noticia=$2 [NC]
o
- RewriteRule ^([^/]+)?promo-cartoon=([^/]+)$
index.php?seccion=$1&noticia=$2 [NC]

pero en el ambos casos me manda el siguiente mensaje
The requested URL /PROYECTOS/pry_noticias/politica was not found on this
server.

trato de ingresar con la siguiente url

http://193.168.1.164/PROYECTOS/pry_noticias/politica?promo=twitter

Alguna idea de como hacer que funcione esa url, el caso es que si modifico
el simbolo "?" por "/" y en la url tambien la cambio ahi si me muestra la
información

Agradezco de antemano su respuesta

Saludos,

Ricardo Vila




2011/11/29 --- Álvaro --- <percalvaro@hotmail.com>
Buenos días lista,

Envío este tema Off-topic por si a alguien le puede interesar, espero que
me disculpeis. Estoy trabajando en una startUp en Madrid y estamos buscando
a unos cuantos programadores de php con experiencia (Tambien buscamos a
gente para dedicarse exclusivamente a javascript). Si a alguien le puede
interesar o necesita más información mandadme un correo directamente a mí y
os daré toda la información que necesiteis; si os gusta más en twitter
@Garretus.

Un saludo a todos

Search Discussions

  • Félix Horro Pita at Nov 29, 2011 at 7:03 pm
    Si entendí bien, lo que quieres es reescribir URLs tipo:

    http://example.com/politica?promo=twitter
    en
    http://example.com/index.php?seccion=politica&promo=twitter

    Pues el problema es que una RewriteRule no se puede comprobar contra una
    query string. Dos opciones:

    1) Podrías comprobar la query string de este modo:

    RewriteCond %{QUERY_STRING} ^promo=twitter$
    RewriteRule ^([^/]+)$ /index.php?seccion=$1&noticia=twitter [L]

    Y así una para cada query string esperada, lo cual no es eficiente,
    evidentemente.

    2) La buena opción, que es concatenar la query string de la URL
    solicitada en la URL final:
    RewriteRule ^([^/]+)$ /index.php?seccion=$1 [QSA,L]

    Que lo que hace precisamente es lo que queríamos, convertir:
    http://example.com/politica?promo=twitter
    en:
    http://example.com/index.php?seccion=politica&promo=twitter



    Saludos.


    On 29/11/11 18:29, Ricardo Vila wrote:
    Buenas listeros, ante todo disculpen el off topic, pero he estado dando
    vuelta al uso de mod rewrite pero no consigo dar con el problema, pues
    requiero hacer url amigables, pero me solicitan que sea de la forma

    SECCION?promo=TEMA

    Donde los valores que varian son los que estan con mayúsculas,

    he probado con las siguientes expresiones

    - RewriteRule ^([^/]+)\?promo-cartoon=([^/]+)$
    index.php?seccion=$1&noticia=$2 [NC]
    o
    - RewriteRule ^([^/]+)?promo-cartoon=([^/]+)$
    index.php?seccion=$1&noticia=$2 [NC]

    pero en el ambos casos me manda el siguiente mensaje
    The requested URL /PROYECTOS/pry_noticias/politica was not found on this
    server.

    trato de ingresar con la siguiente url

    http://193.168.1.164/PROYECTOS/pry_noticias/politica?promo=twitter

    Alguna idea de como hacer que funcione esa url, el caso es que si modifico
    el simbolo "?" por "/" y en la url tambien la cambio ahi si me muestra la
    información

    Agradezco de antemano su respuesta

    Saludos,

    Ricardo Vila




    2011/11/29 --- Álvaro --- <percalvaro@hotmail.com>
    Buenos días lista,

    Envío este tema Off-topic por si a alguien le puede interesar, espero que
    me disculpeis. Estoy trabajando en una startUp en Madrid y estamos buscando
    a unos cuantos programadores de php con experiencia (Tambien buscamos a
    gente para dedicarse exclusivamente a javascript). Si a alguien le puede
    interesar o necesita más información mandadme un correo directamente a mí y
    os daré toda la información que necesiteis; si os gusta más en twitter
    @Garretus.

    Un saludo a todos

  • Félix Horro Pita at Nov 29, 2011 at 8:32 pm
    Por cierto, la conversación debería seguir en la lista. Puede que a
    alguien más le interese.

    Copio y pego lo hablado:
    Gracias por la respuesta, pero eso implica que solo una variable varie? o
    pueden variar dos
    Las que necesites. El QSA lo que hace es concatenar la query string de
    la petición a la query string de la url reescrita.
    Es decir tendre url de esta forma

    http://example.com/politica?promo=twitter
    http://example.com/deporte?promo=mensaje
    http://example.com/farandula?promo=espectaculo


    entonces lo que veo es que son dos valores los que varian

    despues del "/" del dominio, es decir, politica, deporte, farandula y el
    valor que viaja en la variable promo, se puede manejar esto desde dos
    variables?
    Sí, claro. Con el ejemplo que te puse debería funcionar.

    Y podrías poner más variables, tanto en el path como en la query
    string. Por ejemplo:

    RewriteRule ^([^/]+)(/([^/]+)?$ /index.php?seccion=$1&subseccion=$3 [QSA,L]

    Reescribiría también URLs como:
    http://example.com/política/internacional?promo=twitter&id=1234

    por esta:
    http://example.com/index.php?seccion=política&subseccion=internacional&promo=twitter&id=1234

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedNov 29, '11 at 5:29p
activeNov 29, '11 at 8:32p
posts3
users2
websitephp.net

2 users in discussion

Félix Horro Pita: 2 posts Ricardo Vila: 1 post

People

Translate

site design / logo © 2022 Grokbase