Blank Adsense ads on certain pages

António P. P. Almeida appa at perusio.net
Mon Oct 24 00:39:43 UTC 2011


On 24 Out 2011 01h03 WEST, nginx-forum at nginx.us wrote:

> I have inserted my adsense code into my site in certain areas, and
> the issue is very strange: ads only randomly work on some pages, and
> others the ad block still 'loads', but nothing appears. Just a black
> box.
>
> When you load the homepage page, you see the ad...but clicking on
> the forums tab takes you to another page with the **exact same ad
> code**, but nothing loads. You can even rightclick where the ad
> should be and you can see the iframe it inserted. If you go to the
> forums and navigate the member list, random profiles show ads,
> others do not. Certain forums show ads, other ads do not. Certain
> forum topics show ads, other don't.  Refreshing the page does not
> help. This stays consistent across multiple browsers.
>
> The forum has a "SEO" function available, which I have enabled so
> the URLs look better. The .htaccess file if I had gone with apache
> is structured as follows:
>
> <IfModule mod_rewrite.c>
> Options -MultiViews
> RewriteEngine On
> RewriteBase /
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_FILENAME} !-d
> RewriteRule . /index.php [L]
> </IfModule>
>
> Turning the SEO URL function to 'off' removes the issue of ads not
> appearing, but this isn't acceptable for us. It just makes me think
> I have done something wrong in the NGINX config file.
>
> Here is the site-available file I have done for this website:
>
> -------------------------------------------------
>
> ##redirect to www
> server {
> server_name twinkinfo.com;
> rewrite ^/(.*) http://www.twinkinfo.com/$1 permanent;
> }

Like this:

server {
   server_name twinkinfo.com;
   return 301 http://www.twinkinfo.com;
}

> ##################
>
> server {
>
> server_name www.twinkinfo.com;
> root /home/username/www;
>
> location / {
> index index.php;
> try_files $uri $uri/ /index.php;
> }

The catch all location is falling back to index.php without any
arguments. Is that the way it's supposed to be?

> location ^~ /page {
>
> #?q=$uri&$args; required for in-line JS editor
> try_files $uri $uri/ /index.php?q=$uri&$args;
> }

The URIs starting with page have a fallback to index.php with args.

> ##This is the catch-all for .php files
>
> location ~ \.php$ {
> include fastcgi_params;
> include fastcgi_config;
> fastcgi_param SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
> try_files $uri =404;
> }

Is index.php your PHP "handler"? If it is then use this:

location = /index.php {
    include fastcgi_params; 
    include fastcgi_config;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

> ## Disable viewing .htaccess & .htpassword
>
> location ~ /\.ht {
> deny all;
> }
>
> }
>
> upstream backend {
> server 127.0.0.1:9000;
> }

Enable the debug log and trace the way the request is handled.

http://nginx.org/en/docs/debugging_log.html

--- appa



More information about the nginx mailing list