Visualizzazione risultati 1 fino 12 di 12

Discussione: problema con RewriteRule

  1. #1
    Guest

    Predefinito problema con RewriteRule

    salve e rieccomi qui per chiedere ancora una volta un vostro aiutino.

    ho quest link:
    list/magazine/CAT11/2

    che la devo convertire in questo:

    list.php?action=magazine&cat=CAT11&pg=2

    Codice PHP:
    Rewrite Rule ^list/(.*)/([^/])/([0-9])$ list.php?action=$1&cat=$2&pg=$3
    ma perche nella seconda espressione mi tira fuori /CAT11 pure lo slash???

    se tiro fuori le tre request e le stampo mi da:

    magazine/CAT11 3

    pechè questo slash

  2. #2
    Guest

    Predefinito

    Prova così

    Codice:
    RewriteRule ^list\/(.+?)\/(.+?)\/([0-9]+)$ list.php?action=$1&cat=$2&pg=$3

  3. #3
    Guest

    Predefinito

    purtroppo non va:

    RewriteRule ^list\/(.+?)\/(.+?)\/([0-9])$ list.php?action=$1&cat=$2&pg=$3 [L]

    mi passa nella prima variabile sia action che cat
    magazine/CAT11
    Ultima modifica di provalavori : 20-09-2011 alle ore 08.29.58

  4. #4
    Guest

    Predefinito

    Sintatticamente mi pare corretta, posti il codice PHP che usi per stampare le variabili?

  5. #5
    Guest

    Predefinito

    questo è il file htaccess al completo:

    Options -Multiviews
    RewriteEngine On

    RewriteRule ^List$ list.php [L]
    RewriteRule ^list\/(.*)\/(.*)$ list.php?action=$1&cat=$2 [L]
    RewriteRule ^articolo\/(.*)\/(.*)$ article.php?action=$1&id=$2 [L]

    RewriteRule ^list/(.*)$ list.php?action=$1 [L]

    RewriteRule ^list\/([^/]+)\/([^/]+)\/([^/]+)$ list.php?action=$1&cat=$2&pg=$3 [L]
    RewriteRule ^articolo\/(.+?)\/(.+?)\/(.*)$ article.php?action=$1&cat=$2&id=$3 [L]

  6. #6
    Guest

    Predefinito

    be il codice php è questo:


    $action=@trim($_REQUEST["action"]);
    $cat=@trim($_REQUEST["cat"]);

    @(trim($_REQUEST["pg"])=="") ? $page=1 : $page=(int)(trim($_REQUEST["pg"]));

    nulla di così particolare

  7. #7
    Guest

    Predefinito

    Certo che ottieni cose sballate. 3 righe con la stessa casistica!!!

    Devi fare unan sola riga (list) e poi gestire da codice la suddivisione dei parametri.

    quindi qualcosa tipo

    RewriteRule ^list\/(.+?)$ list.php?q=$1

    e poi da php separi le variabili e le associ secondo l'ordine.

    Oppure vai con la versione più "lunga". Sta a te poi usare le variabili o no (ad esempio pg)
    Ultima modifica di simpleticket : 20-09-2011 alle ore 09.02.19

  8. #8
    Guest

    Predefinito

    da quello che ho potuto vedere htaccess non processa la riga:

    RewriteRule ^list\/([^/]+)\/([^/]+)\/([^/]+)$ list.php?action=$1&cat=$2&pg=$3 [L]

    ma questa:
    RewriteRule ^list/(.*)$ list.php?action=$1 [L]

    perchè quando stampo a video le variabili mi passa solo la prima $1 difatti non passa neanche pg ($3)

  9. #9
    Guest

    Predefinito

    ecco come dicevo

  10. #10
    Guest

    Predefinito

    ma l'altra volta mi dicesti che

    RewriteRule ^list/(.*)$ list.php?action=$1 [L]

    e

    RewriteRule ^list\/([^/]+)\/([^/]+)\/([^/]+)$ list.php?action=$1&cat=$2&pg=$3 [L]

    sono differenti

  11. #11
    Guest

    Predefinito

    Non mi ricordo, ma non mi pare sia lo stesso.

    Cmq non puoi fare 3 righe. E se poi ti servisse una quarta?

    Io ti consiglio di convogliare tutta la seconda parte in un sola variabile e gestire la cosa via php

    In questo caso avresti q=magazine/CAT11/3, oppure q=magazine/CAT11 o ancora q=magazine, come vedi, dividendo la stringa in base a "/" ottieni le tue variabili
    Ultima modifica di simpleticket : 20-09-2011 alle ore 09.10.13

  12. #12
    Guest

    Predefinito

    ok risolto grazie come sempre simpleticket sei sempre gentilissimo e disponibilissimo grazie e grazie

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •