Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme
ASUS e Noctua tornano a collaborare con la GeForce RTX 5080 Noctua OC Edition, una scheda pensata per chi cerca potenza estrema e silenziosità assoluta. Il nuovo sistema di raffreddamento, con tre ventole Noctua NF-A12x25 G2 da 120 mm e una camera di vapore maggiorata, promette temperature record e rumorosità quasi impercettibile. Non mancano dual BIOS, materiali di qualità e ampie possibilità di overclock. Ma quanto migliora davvero rispetto alla Founders Edition? Scoprilo nel nostro test completo.
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Il più recente robot per la pulizia domestica di Dreame, modello Aqua10 Ultra Roller, abbina un potente motore di aspirazione della polvere a un sofisticato sistema di lavaggio con rullo integrato. Il tutto governato dalla logica di intelligenza artificiale, per i migliori risultati
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-08-2010, 14:05   #1
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
[WEB] Redirect verso nuovo sito mantendo url

Salve, vi posto il mio problema:
ho due domini, nuovosito.com (ho solo il nome, niente hosting) e vecchiosito.com (con anche hosting)

e vorrei che le richieste su nuovosito.com venissero rimbalzate a vecchiosito.com
Fino qui tutto ok, ci sono mille modi per farlo e 10mila topic a riguardo ovunque, però:

- Mi serve che l'url finale resti quello di nuovo sito, ovvero ad esempio richieste:
nuovosito.com/pagina1.html ---> vecchiosito.com/pagina1.html
nuovosito.com/blabla ---> vecchiosito.com/blabla
Il contenuto deve essere quello della pagina corrispondente di vecchosito, ma l'url nel browser deve restare quello di nuovosito, completo!

- NON posso fare un redirect dns, altrimenti avrei già risolto
- Gli altri redirect al massimo mi marcherano l'url sottostante, ovvero farebbero diventaure tutto
nuovosito.com/pagina1.html ---> vecchiosito.com/pagina1.html
nuovosito.com/blabla ---> vecchiosito.com/blabla
ma nella barra degli indirizzi si continuerebbe a vedere unicamente nuovosito.com, senza percorsi!

Esiste un modo per farlo? io nel nuovosito.com posso uppare qualche file.

Pensavo ad esempio ad usare i socket in php e rimbarlzare la risposta, creando con l'htaccess la "struttura di directory e file" al volo per mantenere anche i percorsi.

Qualcuno lo ha mai fatto o sa se esiste un modo per farlo più facilmente?
alvinian è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 17:51   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se puoi accedere via php ai socket allora puoi accedere anche ad internet direttamente tramite il comando file (ti legge per intero una pagina web, sempre che tu abbia accesso ai socket).
Crei una pagina php che non fa altro che andare a prendere il contenuto dell'url dell'altro sito che gli viene passato.

Ad esempio:

http://www.nuovosito.com/ o http://www.nuovosito.com/index.php

deve andare a prendere la home page.

http://www.nuovosito.com/index.php?path=/pagina1.html

dovrà andare a prendere e visualizzare

http://www.vecchiosito.com/pagina1.html

Non è chiaramente quello che vuoi fare...ma con l'uso di mod_rewrite di apache fai corrispondere

http://www.nuovosito.com/path/xyz.html a http://www.nuovosito.com/index.php?path=/path/xyz.html

In questo modo aggiri il problema è ottieni il risultato voluto. Visualizzerai http://www.nuovosito.com/path/xyz.html nella barra del browser, ma eseguirai http://www.nuovosito.com/index.php?path=/path/xyz.html
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 18:25   #3
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
Ti quoto quello che hai scritto modificandolo correttamente:
Quote:
Originariamente inviato da cionci Guarda i messaggi

col mod_rewrite:
da http://www.nuovosito.com/path/xyz.html a http://www.nuovosito.com/index.php?path=/path/xyz.html

poi con curl dentro la index.php prendo il path e scarico il contenuto di http://www.vecchiosito.com/path/xyz.html e barra del browser visualizzo in realtàhttp://www.nuovosito.com/path/xyz.html
Esattamente quello che volevo, già testato e funziona a meraviglia.

Il problema sono i contenuti secondari, ad esempio se nella pagina vecchiosito.com/path/xzy.html c'è un <img src="/img/im.jpg"> questo viene "cercato" nel nuovosito e ovviamente non viene trovato.
Lo stesso problema lo ho coi css e con gli script js.

Dovrei praticamente far con curl uno scaricamento "globale" e creare le risorse "virtuali" sul nuovosito.com

Tu sai come è possibile farlo?
Nel senso che scandire una pagina html e vedere se ci sono risorse da scaricare a parte lo so fare, ma poi come le "propongo" all'utente?

Nel senso che io ad esempio "/img/im.jpg" non la ho, ma posso procurarmela, il punto è come faccio a metterne il contenuto scaricato esattamente li?
alvinian è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 18:44   #4
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da alvinian Guarda i messaggi
Salve, vi posto il mio problema:
ho due domini, nuovosito.com (ho solo il nome, niente hosting) e vecchiosito.com (con anche hosting)
Ciao, cosa intendi dire che di nuovosito.com hai solo il nome ? E' un altro dominio di cui in pratica vuoi fare una sorta di mirroring ?
Domanda collaterale idiota: nuovosito e' tuo o di qualcun altro ?
In ogni caso, su vecchiosito che tipo di hosting hai ? Su cosa puoi mettere mano ?
Sembrerebbe il lavoro ideale per mod_proxy.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 18:56   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
No, avevo scritto correttamente.

Ogni url viene trasformato da http://www.nuovosito.com/path/xyz.html a http://www.nuovosito.com/index.php?path=/path/xyz.html, quindi quando visualizzerai la pagina anche l'url http://www.nuovosito.com/img/im.jpg verrà riscritto in http://www.nuovosito.com/index.php?path=/img/im.jpg
Quindi anche l'immagine verrà recuperata e visualizzata. Al massimo ci sarà da adattare il mime type...

Ultima modifica di cionci : 25-08-2010 alle 18:59.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 19:18   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
readfile è una funzione più adatta di file. Trovi esempi su come settare il corretto mime type nella pagina di readfile nella documentazione di php.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 19:24   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ecco qua un esempio su come usare mod_rewrite: http://www.logon2.com.au/blog/archiv...rite-tutorial/
Per determinare la pagina di vecchio sito da caricare, stampa $_SERVER['REQUEST_URI'] e capirai come viene composta la richiesta.

A questo punto determini il mime type, stampi i vari header (come nell'help di readfile) e leggi il file remoto tramite readfile.
In alcuni casi ci potrebbero essere problemi per la determinazione dei mime type, ma per un sito "tranquillo" non ci dovrebbero essere grossi prolemi.

Ultima modifica di cionci : 25-08-2010 alle 19:27.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 23:51   #8
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
Ti ringrazio veramente cionci, usando quel link ho fatto molto più velocemente di quello che stavo realizzando e funziona a meraviglia!

Posto il codice nel caso servisse a qualcun altro.
File da mettere su nuovosito.com (niente hosting, solo nome dominio):
-- file .htaccess --
Codice PHP:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase 
/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
RewriteRule 
. /index.php [L]
</
IfModule
-- file .index.php --
Codice PHP:
<?
$url 
"http://vecchiosito.com".$_SERVER['REQUEST_URI'];
$output getContent($url);

if (
strstr($_SERVER['REQUEST_URI'],".css"))
    
$output = eval(header("Content-type: text/css")).$output;
    
echo 
$output;

function 
getContent ($url
{
    
$ch curl_init();

    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_HEADER0);
    
curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
    
curl_setopt($chCURLOPT_RETURNTRANSFER,true);

    
$output curl_exec($ch);

    
curl_close($ch);
    return 
$output;
}
?>
Funziona alla perfezione, l'unico mime che dava problemi era quello dei css, le immagini e il resto per ora sono ok (devo testare su altri browser).
In questo modo si ottiene - in modo completamente trasparente all'utente - tutto il contenuto di vecchiosito.com stampato su nuovosito.com, mantenendo i path e la struttura originale!

Grazie ancora
alvinian è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 08:21   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da alvinian Guarda i messaggi
Ti ringrazio veramente cionci, usando quel link ho fatto molto più velocemente di quello che stavo realizzando e funziona a meraviglia!
Bene
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 08:57   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ho verificato anche io in locale e funziona anche in questo modo:
Codice PHP:
<?php
$url 
"http://www.sito.it".$_SERVER['REQUEST_URI'];

if (
strstr($_SERVER['REQUEST_URI'],".css"))
    
header("Content-type: text/css");
    
readfile($url);
?>
Visto che per molti l'uso di curl in php è problematico (non sempre è compilato con l'interprete)...
Il problema con i css c'è anche qui. Sinceramente trovo difficile capirne il perché.

PS: la funzione header rende già in output il nuovo header
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 09:51   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mi vengono in mente ora molte limitazioni. Principalmente alle richieste post ed ai coockies. In pratica con curl sarebbe possibile risolvere il problema, basterebbe duplicare tutti gli header (con getallheaders si ottengono tutti gli header) ed inviarli nella request tramite curl.
Poi ci sarebbero da gestire i cookies con dominio esplicito: bisogna cambiare il dominio sostituendo dove appare "vecchiosito", con "nuovosito" nel response header.

In sostanza, per un sito statico va bene anche così, per un sito dinamico è difficile che basti.

Ultima modifica di cionci : 26-08-2010 alle 15:24.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 14:04   #12
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
Si mi sono già accorto anche io di questi due problemi e li stavo sistemando.
Il problema del post lo ho sistemato aggiungendo:

Codice PHP:
function getPostVars() 
{
    
$post "";
    
$amp "";
    
    foreach(
$_POST as $key => $value) {
        
$post .= $amp $key "=" urlencode($value);
        
$amp "&";                        
    } 
    return 
$post;
}
if (
count($_POST) > 0
{
   
curl_setopt($chCURLOPT_POSTtrue);
   
curl_setopt($chCURLOPT_POSTFIELDSgetPostVars());

Per i cookie ci sto an cora lavorando, ho problemi con la CURLOPT_COOKIE di curl.
Se vuoi darmi una mano...

Ultima modifica di alvinian : 26-08-2010 alle 14:57.
alvinian è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 15:23   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non conosco curl e la mia versione di php è compilata senza il supporto a curl. Non c'è il modo di trapiantare tutti gli header dalla richiesta che arriva a php a curl ?

Con getallheaders si dovrebbero ottenere tutti... In tal caso si risolverebbe automaticamente il problema del post.
Per i cookies basterebbe fare una sostituzione nell'header ricevuto dal sito, se setta un cookie sostituisci "vecchiosito" a "nuovosito".
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 15:43   #14
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
Scusa ma la getallheaders() prende gli header tra il mio client e il sito specchio che fa girare curl.
A me servono gli header che girano tra la richiesta curl e il sito vero con i contenuti.
alvinian è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 15:47   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se tu giri tutti gli header che ricevi alla richiesta HTTP verso la richiesta curl, salti a piè pari sia il problema del post che dei cookies nella direzione dal browser al vecchio sito.
Poi nei dati ricevuti da curl ti basta cercare negli header se vengono settati dei cookies. Se vengono settati cambi qualsiasi riferimento testuale a vecchiosito.it in nuovosito.it.

Guarda qui come passa tutti gli header: http://www.php.net/manual/en/functio...topt.php#80271
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 16:49   #16
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
Si questo lo ho capito e sono in grando di rimbalzare gli header che girano tra client->curl verso la comunicazione curl->vecchiosito (usando la CURLOPT_HTTPHEADER, come mi hai appena linkato anche tu )

Il problema è capire gli header che ci sono tra vecchiosito->curl. Se vecchiosito mi imposta dei cookie su curl come faccio a intercettarli e poi infilarli dentro una setcookie verso il mio client?
alvinian è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 17:00   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Cerchi in quello che ti ritorna curl_exec...
Prima di tutto dovresti determinare la fine degli header, per evitare di cercare in tutto l'output (potrebbe essere anche un file ed avere dati binari). La fine degli header è determinata da una sequenza "\r\n\r\n".
A questo punto estrapoli gli header e devi cercare un testo come questo: "\r\nSet-Cookie: "
Cerchi fra la fine della stringa sopra ed il prossimo "\r\n", tutte le occorrenze di "vecchiosito.it" e le cambi in "nuovosito.it". Riaggiungi l'header alla risposta e prosegui.

Ultima modifica di cionci : 26-08-2010 alle 17:02.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 20:01   #18
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
Benissimo, ho quasi finito.
I cookie che il client mi manda li setto da curl verso vecchio sito cosi:
Codice PHP:
// Header richiesta
$headerArr getallheaders();

// Prendo eventuali cookie dalla richiesta corrente
$cookiestr $headerArr["Cookie"];
if (
$cookiestr)
{
    
// Sostituisco occorrenze host (newUrl -> originalUrl)
    
$cookiestr str_replace($newUrl$originalUrl$cookiestr); // non testata
    
$addHeader "Cookie: ".$cookiestr;
    
curl_setopt($chCURLOPT_HTTPHEADER$addHeader); 

E quelli che vecchiosito setta al curl li rimbalzo al client cosi:
Codice PHP:
// Funzione callback per intercettare i cookie
curl_setopt($chCURLOPT_HEADERFUNCTION'read_header');

// Callback eseguita per ogni riga dell'header
function read_header($ch$header)
{
    global 
$originalUrl;
    global 
$newUrl;
    
$length strlen($header);
    
    
// La CURLOPT_FOLLOWLOCATION non funziona col safe mode, forzo in locale l'esecuzione
    
if(!strncmp($header"Location:"9))
    {
        
$location trim(substr($header9, -1));
        
header("Location: $location");
    }

    if(!
strncmp($header"Set-Cookie:"11))
    {
        
$cookiestr trim(substr($header11, -1));
        
// Sostituisco occorrenze host (originalUrl -> newUrl)
        
$cookiestr str_replace($originalUrl$newUrl$cookiestr); // non testata
        
header("Set-Cookie: ".$cookiestrfalse); // Senza false eventuali altre Set-Cookie verrebbero sovrascritte
    
}

    return 
$length;

Ma ho ancora qualche problema con le sessioni, anche se non capisco perchè.
Il Cookie: PHPSESSID=xxxxxx lo vedo girare correttamnete
alvinian è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 20:12   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quelli che arrivano dal client non li devi toccare, vengono già selezionati dal client, non ci dovrebbe essere un campo domain da modificare.

Quindi passa direttamente tutti gli header a curl, pari pari.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2010, 01:36   #20
alvinian
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 17
Direi che ho finito.
Posto ancora il codice nel caso servisse a qualcun altro.
Se gentilmente ci dai un'occhiata mi faresti anche un grande favore
Codice PHP:
<?
$originalUrl 
"vecchiosito.com";
$newUrl "sitospecchio.com";

$url "http://".$originalUrl.$_SERVER['REQUEST_URI'];
$ch curl_init();

// Header richiesta
$headerArr getallheaders();
$headers = array();

// Prendo eventuali cookie dalla richiesta corrente
if (isset($headerArr["Cookie"]))
    
array_push($headers,"Cookie: ".$headerArr["Cookie"]);
if (isset(
$headerArr["Accept"]))
    
array_push($headers,"Accept: ".$headerArr["Accept"]);
if (isset(
$headerArr["Accept-Language"]))
    
array_push($headers,"Accept-Language: ".$headerArr["Accept-Language"]);
if (isset(
$headerArr["Accept-Encoding"]))
    
array_push($headers,"Accept-Encoding: ".$headerArr["Accept-Encoding"]);
if (isset(
$headerArr["Accept-Charset"]))
    
array_push($headers,"Accept-Charset: ".$headerArr["Accept-Charset"]);
if (isset(
$headerArr["Keep-Alive"]))
    
array_push($headers,"Keep-Alive: ".$headerArr["Keep-Alive"]);
if (isset(
$headerArr["Connection"]))
    
array_push($headers,"Connection: ".$headerArr["Connection"]);
if (isset(
$headerArr["X-Requested-With"]))
    
array_push($headers,"X-Requested-With: ".$headerArr["X-Requested-With"]);
if (isset(
$headerArr["Cache-Control"]))
    
array_push($headers,"Cache-Control: ".$headerArr["Cache-Control"]);    

// Aggiungo tutto all'header curl
if (count($headers) > 0)
    
// L'array deve essere appiattito, know-bug curl
    
curl_setopt($chCURLOPT_HTTPHEADERflat_array($headers)); 

// Prendo eventuali variabili post dalla richiesta corrente
// TODO: Si poteva fare direttamente esaminando l'header
if (count($_POST) > 0)
{
    
curl_setopt($chCURLOPT_POSTtrue);
    
curl_setopt($chCURLOPT_POSTFIELDSgetPostVars());
}

// Funzione callback per intercettare i cookie arrivati a curl
curl_setopt($chCURLOPT_HEADERFUNCTION'read_header');

// Altre impostazioni
if (isset($_SERVER['HTTP_REFERER']))
    
curl_setopt($chCURLOPT_REFERERstr_replace($newUrl$originalUrl$_SERVER['HTTP_REFERER']));
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_TIMEOUT10);
    
$output curl_exec($ch);
curl_close($ch);

// Sistemo mime
// TODO: Si potrebbe prendere il mime corretto direttamente dall'header nel callback    
if (strstr($_SERVER['REQUEST_URI'],".css"))
    
header("Content-type: text/css");
elseif (
strstr($_SERVER['REQUEST_URI'],".png"))
    
header("Content-type: image/png");
elseif (
strstr($_SERVER['REQUEST_URI'],".gif"))
    
header("Content-type: image/gif");
elseif (
strstr($_SERVER['REQUEST_URI'],".jpg"))
    
header("Content-type: image/jpeg");
elseif (
strstr($_SERVER['REQUEST_URI'],".htc"))
    
header('Content-type: text/x-component');
elseif (
strstr($_SERVER['REQUEST_URI'],".ico"))
    
header('Content-type: image/x-icon');
elseif (
strstr($_SERVER['REQUEST_URI'],".xml"))
    
header('Content-type: text/xml');
    
// Stampo    
echo $output;

// Callback eseguita per ogni riga dell'header
function read_header($ch$header)
{
    global 
$originalUrl;
    global 
$newUrl;
    
$length strlen($header);
    
    
// curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) non funziona col safe mode, forzo con l'header
   
if(!strncmp($header"Location:"9))
    {
        
$location trim(substr($header9, -1));
        
header("Location: $location");
    }

    if(!
strncmp($header"Set-Cookie:"11))
    {
        
$cookiestr trim(substr($header11, -1));
        
// Sostituisco occorrenze host (originalUrl -> newUrl)
        
$cookiestr str_replace($originalUrl$newUrl$cookiestr); // non testata
        
header("Set-Cookie: ".$cookiestrfalse); // Senza false eventuali altre Set-Cookie verrebbero sovrascritte
    
}

    return 
$length;
}

function 
getPostVars() 
{
    
$post "";
    
$amp "";
    
    foreach(
$_POST as $key => $value) {
        
$post .= $amp $key "=" urlencode($value);
        
$amp "&";                        
    } 
    return 
$post;

function 
flat_array($arr)
{
    
$res "";
    foreach(
$arr as $value)
        
$res .= $value."\n";
        
    return array(
substr($res,0,-1));
}
?>
Il file .htaccess è lo stesso del post #8

L'unico problema che fino ad ora ho riscontrato è che dal sito specchio non riesco a fare il login allo script piwik, mi torna:
Quote:
Errore: Form security key is invalid or has expired. Please reload the form and check that your cookies are enabled.
Ma è un problema che interessa solo me e io mi loggo dall'url reale; il resto del sito funziona a meraviglia

Ultima modifica di alvinian : 27-08-2010 alle 04:05.
alvinian è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
La ''guerra'' per scegliere il nuovo amm...
ChatGPT Atlas ufficiale: il browser Open...
L'interessante video di un booster di un...
Il primo lancio di un razzo spaziale Ari...
Nuova Alfa Romeo Tonale: ecco tutti gli ...
Corsair Air 5400: case a tripla camera c...
NPC parlanti e realistici che girano sul...
Incentivi auto 2025: pubblicato l'elenco...
Ewiva inaugura a Piacenza la prima stazi...
BOOX amplia la gamma E Ink: arrivano Pal...
Perché il web ieri è crollato: come il D...
Ryzen 9 9950X3D2 e Ryzen 7 9850X3D in ar...
Alice Pizza accelera sull’innovazione: c...
Via acari e polvere da materassi, tappet...
Apple sfida l’UE in tribunale: “Il Digit...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:04.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v