2009-11-05 7 views
5

Quindi dopo tanto aiuto e ricerche sono stato FINALMENTE riuscito a far funzionare i reindirizzamenti 301 tramite il file .htaccess, ma ho notato che a meno che non avessi effettivamente "aggiornato" sul mio browser non reindirizzerebbe la pagina a causa della semplice lettura del sito nella cache.301 Reindirizzamento con htaccess e Cache: come eliminare la vecchia cache?

Ho provato a chiudere tutti i browser, inserire il file .htaccess e POI aprire un nuovo browser, ma apre ancora il sito nella cache. Rischerei di indovinare che la maggior parte dei clienti non si preoccuperebbe di aggiornare una pagina, e se non lo fanno, ci vorrà un po 'di tempo per scoprire che c'è davvero una nuova pagina!

Qualche idea? Grazie!

-Karl

EDIT: "! Clicca qui per vedere il nostro nuovo sito web" Ho appena avuto l'idea di mettere un link sulla nostra home page corrente che dice: e il collegamento aggiornerà la pagina, che a sua volta farà partire il reindirizzamento 301 in azione. Qualcuno può pensare a qualche effetto collaterale negativo di questo?

risposta

0

Attendere qualche istante. La maggior parte delle cache degli utenti scadrà in un periodo di ore, a meno che non imposti il ​​server per servire la pagina con un suggerimento di cache insolitamente lungo.

Se stai servendo la pagina adesso, puoi impostare le intestazioni in modo che il client non la memorizzi nella cache. Vedere questa domanda per questo:

What is the proper way to tell the browser not to cache?

+0

C'è un modo per verificare per quanto tempo la cache durerà? Ad esempio, il sito Web di cui mi occupo è www.mastercontrols.com. –

+0

Il server usa gli etags per inviare un 304 non modificato dopo che la pagina si trova nella cache di un utente. Se si verificano problemi con la cache, provare a modificare i documenti in modo che la data dell'ultima modifica sul disco sia più recente. –

+0

Quindi consiglieresti di andare in ogni file e di cambiare qualcosa di piccolo e di salvarlo? Inoltre, come hai scoperto che il server stava inviando un 304? –

2

Karl,

Il modo migliore che ho trovato per esaminare le intestazioni di cache è il Live HTTP Headers firefox add on.

Questo è quello che dice sulla tua home page:

HTTP/1.x 200 OK 
Date: Fri, 06 Nov 2009 15:16:57 GMT 
Server: Apache 
Last-Modified: Mon, 12 Oct 2009 16:52:05 GMT 
Etag: "85dcc1-1386-4ad35eb5" 
Accept-Ranges: bytes 
Content-Length: 4998 
Keep-Alive: timeout=10, max=99 
Connection: Keep-Alive 
Content-Type: text/html 

Come accennato in precedenza, l'ETAG è il problema. Una soluzione rapida (unificata) potrebbe essere: find /var/www/htdocs -type f|xargs touch che cambierà l'ora modificata di ogni file nella directory www.

Tuttavia, dipende da come l'istanza di apache è configurata per generare il valore di etag. Ecco uno great little howto on setting up caching with Apache.

Per quanto riguarda il tuo suggerimento di aggiungere un collegamento, non penso che funzionerà. Non è possibile forzare un browser ad aggiornare una pagina da remoto e, come indicato sopra, il problema è con gli etags, che la soluzione non cambierà.

Dan

Problemi correlati