- Home
- Categorie
- Coding e Sistemistica
- Coding
- Redirect su PHP con variabili
-
Scusate ragazzi se mi introduco nel 3d... ma ho un problema simile...
il file .htaccess è della directory PHPLD...Questa parte funziona benissimo
[html]Categoria redirect
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [QSA,L]
[/html]Questa invece non la prende in considerazione:
[html]nuovi inserimenti
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule nuovi.html? /index.php?p=d [QSA,NC,L]top link
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule top.html? /index.php?p=h [QSA,NC,L]
[/html]Dov'è l'errore?
Grazie mille anticipato per l'aiuto...
-
puoi provare a fare na cosa?
metti la prima parte alla fine del file htaccess e riprova facce sapè
-
@jackass said:
mmm dall'url che hai scritto ci sta una variabile ele_prod.php?cid=$1-$2
praticamente a $cid puoi assegnare un valore alla volta, ti do un consiglio passa un url della tua pagina completo di variabili altrimenti non è possibile darti na mano.....Ciao!+
Ecco il link alla pagina dinamica:
<A HREF="http://www.ai-machines.xxx/ele_prod.php?cid=<? echo $row2[id]; ?>">Non mi interessa però il redirect sull'htaccess, ma sulla pagina ele_prod.php, in stile:
<?php
if ( eregi('^(.*)/miapagina.php?parametro$', $_SERVER['REQUEST_URI'])) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: $parametro-$ID.html');
}
?>Il secondo parametro che avevo inserito sull'htaccess, sarebbe un secondo parametro che dovrei "passare" all'htaccess, ma che ora non è presente sull'URL.
-
Era sbagliata la sintassi...
In questo modo funziona:
[html]nuovi inserimenti
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule nuovi.html$ index.php?p=d [QSA,NC,L]top link
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule top.html$ index.php?p=h [QSA,NC,L]
[/html]Ho trovato tra l'altro un'ottima guida, spero possa essere utile:
http://www.webmaster-headquarters.com/faqs/mod_rewrite.shtmlCiao
-
Scusami Kru, ho interferito nel 3d...
Sono molto dispiaciuto...
-
Non fa niente, jardem.
Sposto il mio post quì@Jackass said:
mmm dall'url che hai scritto ci sta una variabile ele_prod.php?cid=$1-$2
praticamente a $cid puoi assegnare un valore alla volta, ti do un consiglio passa un url della tua pagina completo di variabili altrimenti non è possibile darti na mano.....Ecco il link alla pagina dinamica:
<A HREF="http://www.ai-machines.xxx/ele_prod.php?cid=<? echo $row2[id]; ?>">Non mi interessa però il redirect sull'htaccess, ma sulla pagina ele_prod.php, in stile:
<?php
if ( eregi('^(.*)/miapagina.php?parametro$', $_SERVER['REQUEST_URI'])) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: $parametro-$ID.html');
}
?>Il secondo parametro che avevo inserito sull'htaccess, sarebbe un secondo parametro che dovrei "passare" all'htaccess, ma che ora non è presente sull'URL.
-
buongiorno pare che non ci sia nulla di strano nel redirect che hai fatto l'unica cosa controlla la regular expression e non usare percorsi relativi ma usa percorsi assoluti perche potresti avere problemi e ancora la funzione header potrebbe darti problemi anche solo se prima dei tag di php ci sta dello spazio per questo assicurati che sia messo prima di ogni altra cosa, a volte gli editor di testo identano senza permesso.......
ciao jackass
P.S. facce sapè
-
Ciao.
Nello specifico, ho fatto questo:
<?php
if ( eregi('^(.)/ele_prod.php?cid=(.)$', $_SERVER['REQUEST_URI'])) {
$urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
header('HTTP/1.1 301 Moved Permanently');
header('Location: $urlstring');
}
?>Questa regola però non sembra funzionare. Non ricevo nessun errore. Semplicemente, si apre la normale pagina richiesta. Forse è sbagliata l'espressione regolare dell' if?
-
@kru said:
Ciao.
Nello specifico, ho fatto questo:
<?php
if ( eregi('^(.)/ele_prod.php?cid=(.)
prova così
<?php
if ( eregi('/ele_prod.php?cid=', $_SERVER['REQUEST_URI'])) {
$urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
header('HTTP/1.1 301 Moved Permanently');
header('Location: $urlstring');
}
?>, $_SERVER['REQUEST_URI'])) {
$urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
header('HTTP/1.1 301 Moved Permanently');
header('Location: $urlstring');
}
?>Questa regola però non sembra funzionare. Non ricevo nessun errore. Semplicemente, si apre la normale pagina richiesta. Forse è sbagliata l'espressione regolare dell' if?
prova così
<?php
if ( eregi('/ele_prod.php?cid=', $_SERVER['REQUEST_URI'])) {
$urlstring = "computer/".$row2[id]."-".(str_replace(" ","-",$row2[tag]));
header('HTTP/1.1 301 Moved Permanently');
header('Location: $urlstring');
}
?>
-
No, è uguale. Non reindirizza
-
guarda questo è quello che ho provato io e funziona
<?php
while ( eregi('scambio.php', $_SERVER['PHP_SELF'])) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://127.0.0.1/apache2-default/posizione google/posizione.php');
exit;
}
?>
-
si, ma quello non ha la pagina dinamica
-
non è quello il problema cmq mi sto accorgendo che cambiando posizione al file il redirect non funziona piu è una cosa strana faccio un po di prove e se capisco il perche ti faccio sapere..... ciao
-
@jackass said:
non è quello il problema cmq mi sto accorgendo che cambiando posizione al file il redirect non funziona piu è una cosa strana faccio un po di prove e se capisco il perche ti faccio sapere..... ciao
Ok. grazie
Cmq, tieni conto che a me interessa la sintassi x le pagine con variabili.
-
scusami di nuovo la faccenda mi interessa non ne vuole sapere di funzionare cmq una soluzione puo essere questa
<?
$cid=$_GET['cid'];
if (isset($cid)){
header("location:http://www.google.it");}
?>
controlli soltanto che quella variabile sia settata e fai il redirect funziona testato!!!
-
Ciao
Eccomi... scusa il ritardo, ma stavo testando.
Comunque, ecco tutto il mio discorso, funzionante, con la tua regola:<?php
include("admin/db_config/config.php");
session_start();
$sid = session_id();
$query = "SELECT id_categoria,titolo,tag FROM categorie WHERE id = '$cid'";
$result=mysql_query($query, $db);
while ($row = mysql_fetch_array($result)) {
$cat = $row[titolo];
$tag = $row[tag];
$tagurl = (str_replace(" ","-",$tag));
}
$cid=$_GET['cid'];
$urlstring = ("computer/".$cid."-".$tagurl.".html");
//if ( eregi('^(.)/ele_prod.php?cid=(.)', $_SERVER['REQUEST_URI'])) {
if (isset($cid)) {
header('HTTP/1.1 301 Moved Permanently');
header('Location:' .$urlstring);
}
?>Spero sia utile
Ora non mi resta che convincere htaccess a prendere in considerazione la variabile $tagurl, per avere una url finale del tipo:dominio/computer/25-hard-disk.html
Qualche idea?