2011-10-04 13 views
7

Qual è il modo più veloce per reindirizzare una pagina specifica (specifica), un PHP o un htaccess? Considerando che molte pagine diverse potrebbero richiedere tale reindirizzamento su un sito ad alto traffico. per esempio. ciò che è più veloce:Reindirizzamento più veloce, PHP o htaccess?

PHP (nessuna query di database coinvolti, solo semplice pianura php redirect)

header("Location: /new.php",TRUE,301); 

o

.htaccess

redirect 301 old.php http://site.com/new.php 

risposta

6

Depends. In generale, .htaccess sarà più veloce perché non avrai il sovraccarico di invocare PHP. Tuttavia, se hai 1000 reindirizzamenti in un singolo file .htaccess a livello di root del documento, allora Apache dovrà controllarli tutti ad ogni caricamento di pagina. Ad esempio, invece di servire index.php, ora dovrai fare 1000 controlli regolari, e quindi servire index.php. Nel complesso, direi che se hai molti reindirizzamenti e molte pagine che non verranno reindirizzate, fallo in PHP. In questo caso, non si paga alcun overhead aggiuntivo per le pagine che non devono essere reindirizzate.

7

.htacess vengono elaborati prima php si chiama, quindi se puoi crearlo, sarà sicuramente più veloce

+2

Tuttavia. .htaccess stesso viene caricato/analizzato per ogni hit, quindi forse PHP può essere più veloce in alcune circostanze (htaccess molto complesso per uno), in particolare con le cache in atto. –

+1

se c'è un .htaccess complesso, verrà comunque analizzato e aggiunto al tempo di processare il PHP, quindi non ci sarà alcun guadagno o – Einacio

2

Se htaccess è usato del tutto, Apache lo elaborerà prima dell'inizio dell'elaborazione di PHP. Non ho fatto i benchmark sull'utilizzo dell'uno o dell'altro, ma quando entrambi sono presenti, htaccess sarà sempre più veloce.

Nota anche che il reindirizzamento di htaccess può essere scritto usando espressioni regolari da applicare a più vecchi file, quindi meno lavoro da parte tua.

+0

htaccess sarà sempre più veloce ... sì, ma solo per le pagine che hanno avuto un interesse a passare attraverso l'htacess; se il 99% delle tue pagine non viene reindirizzato, ma hai 1 000 righe nel tuo .htaccess: quindi l'analisi del file .htaccess per OGNI richiesta è in rallentamento più che l'1% delle pagine che beneficiano di non andare se il php viene reindirizzato – spiritoo