nascondere visualizzazione blocchi in base all'agent
Ciao ragazzi, devo nascondere alcuni blocchi quando mi guarda google-news.
sono andato all'interno di un blocco ho messo :
Mostra se il seguente codice PHP restituisce TRUE (modalità PHP, solo esperti).
<?php
if (!strstr($_SERVER['HTTP_USER_AGENT'], "Googlebot-News" ) )
{ return TRUE;}
?>
in questo modo facendo un test cambiando user agent effettivamente non compare se sono loggato.
Ovviamente ho anche le cache attive e quindi ho dovuto disabilitare la cache per i blocchi, in questo modo pensavo di risolvere il problema, e se usassi solo le cache native di drupal il problema sarebbe risolto.
Ma uso anche boost che crea file statici, quindi anche in questo caso dentro a boost ho abilitato
Cache pages for which the following PHP code returns TRUE (PHP-mode, experts only).
<?php
if (!strstr($_SERVER['HTTP_USER_AGENT'], "Googlebot-News" ) )
{ return TRUE;}
?>
ho abilitato anche sull'htaccess una regola per saltare il boost
RewriteCond %{HTTP_USER_AGENT} ^Googlebot-News [NC,OR]
In questo modo dovrebbe saltare il boost, e dovrebbe quindi usare le cache di default di drupal
nonostante questo SPESSO mi succede di avere le pagine in cache senza i blocchi anche per gli utenti anonimi normali.
Cache view non ci sono, cache block non ci sono, cache pannel non ci sono.
Avete qualche consiglio?
Risposte
Ciao, se serve pagine cachate
Ciao, se serve pagine cachate comunque senza blocchi, il problema potrebbe essere nelle funzioni di visibilità utilizzate. Prova questa alternativa:
return (strpos($_SERVER['HTTP_USER_AGENT'], 'Googlebot-News') === FALSE);
sia nella conf del blocco che di boost e vedi fammi sapere.
Niente da fare stesso
Niente da fare stesso risultato.
il bello è che se lo simulo con il browser mettendo l'agent google-news tutto funziona, dopo un pò di tempo però riprovo e l'utente anonimo normale non vede i più i blocchi.
Faccio un flush delle cache, vado in anonimo e metto l'agent google news, i blocchi spariscono, sempre da anonimo vado in agent normale e i blocchi si vedono, dopo un pò non so per quale motivo ricontrollo e i blocchi spariscono.
al boost ho detto che se c'è l'agent google news non generi la cache, all'htacces ho detto che se c'è google-news non deve nemmeno far vedere il boost, ai blocchi ho disabilitato le cache e ho messo di farli vedere solo se non c'è l'agent google-news, alle viste dei blocchi ho disabilitato le cache.
Non so veramente più cosa cacchio guardare
prova a postare l'indirizzo
prova a postare l'indirizzo del sito, magari può essere utile per aiutarti
Allora ho appena flushato
Allora ho appena flushato altrimenti non si vedono i blocchi
http://www.net1news.org/
i blocchi sono quelli a dx argomenti e regioni
se non li vedete quando entrate andate qui
http://www.net1news.org/anteprima/Cronache non passando google news qui dovrebbero vedersi sempre
Ciao
p.s. provate a cambiare user agent se li vedete, tenete premuto shift e aggiornate pagina vedrete che spariscono.
riciao
Per caso hai fatto in modo di
Per caso hai fatto in modo di eliminare il commento che boost accoda ad ogni pagina? Quello del tipo:
<!-- Page cached by Boost @ 2010-11-24 18:55:11, expires @ 2010-11-24 19:55:11 -->
se non è così, probabilmente significa che boost non serve per niente le pagine statiche...
si l'avevo impostato che lo
si l'avevo impostato che lo mettesse solo nell'header perchè pesa meno, adesso per comodità te l'ho ripristinato anche nel footer
In linea generale sembra
In linea generale sembra funzionare bene.
Utilizzando l'user agent di Firefox e navigando le pagine vedo sempre i 2 blocchi (argomenti/regioni) e mi vengono sempre restituite pagine dalla cache.
Utilizzando l'user agent Googlebot-News, non vedo mai i due blocchi e le pagine non vengono mai servite dalla cache.
L'unica "stranezza" è che indipendentemente dall'user agent se si esegue un hard refresh con CTRL + F5 (puoi comunque impostare boost per restituire sempre la pagine in cache anche in questo caso) i blocchi non si vedono comunque: al di là di questo, però le pagine vengono cachate correttamente, quindi è possibile che sia un problema relativo a questo caso particolare.