-
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
-
Prova cosė
Codice:
RewriteRule ^list\/(.+?)\/(.+?)\/([0-9]+)$ list.php?action=$1&cat=$2&pg=$3
-
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
-
Sintatticamente mi pare corretta, posti il codice PHP che usi per stampare le variabili?
-
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]
-
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
-
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)
-
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)
-
-
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
-
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
-
ok risolto grazie come sempre simpleticket sei sempre gentilissimo e disponibilissimo grazie e grazie