Placing Forced Ads On Your Customers' Web Sites With .htaccess (ISPConfig)

I wrote this howto for those who want to place forced ads on their ISPConfig server. Probably you can set up forced ads in different ways but I found the way descibed here.

I am using Debian Etch and ISPConfig 2.2.19 in this example.

What needs to be done:

  • edit apache config
  • create .htaccess files
  • create header and footer with ads
  • disable the ads on accounts that upgrade

I had to enable PHP server wide for this to work, and since I give all my clients PHP, it is not a big deal, but if anyone can update this with a method to only allow PHP in the /var/www and /var/www/ads directories that would be appreciated.

Let’s show where our ISPConfig server is capable of, here we go:

 

Step 1: Enable PHP System Wide

vi /etc/mime.types

Uncomment the following lines:

[...]
#application/x-httpd-php phtml pht php
#application/x-httpd-php-source phps
#application/x-httpd-php3 php3
#application/x-httpd-php3-preprocessed php3p
#application/x-httpd-php4 php4
[...]
vi /etc/apache2/mods-enabled/php5.conf

Uncomment the AddType lines:

<IfModule mod_php5.c>
# AddType application/x-httpd-php .php .phtml .php3
# AddType application/x-httpd-php-source .phps
</IfModule>

 

Step 2

First let's edit the Apache configuration:

vi /etc/apache2/apache2.conf

Towards the bottom of the apache2.conf you will find:

<Directory /var/www/sharedip>
Options +Includes -Indexes
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Order allow,deny
Allow from all
<Files ~ "^\.ht">
Deny from all
</Files>
</Directory>

Immeidately after that add:

<Directory /var/www>
Options +Includes -Indexes
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo Options
Order allow,deny
Allow from all
<Files ~ "^\.ht">
Deny from all
</Files>
</Directory>

Below that you will find:

<Directory /var/www/*/web>
Options +Includes -Indexes
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Order allow,deny
Allow from all
<Files ~ "^\.ht">
Deny from all
</Files>
</Directory>

Change this to:

<Directory /var/www/*/web>
Options +Includes -Indexes
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo Options
Order allow,deny
Allow from all
<Files ~ "^\.ht">
Allow from root
Deny from all
</Files>
</Directory>

Save and:

/etc/init.d/apache2 restart

 

Step 3

Now let's create a directory:

mkdir /var/www/ads

 

Step 4

We are going to create two PHP files now. Let's make footer.php with your footer ad and let's make blank.php that is actually blank.

 

Step 5: Creating .htaccess File

Use any text editor you like; most of them will give you another extention, but rename the file to .htaccess and have it contain the following:

php_value output_buffering 4098
AddType application/x-httpd-php htm
AddType application/x-httpd-php html
php_value auto_append_file '/var/www/ads/footer.php'

And that's it, now every site on the server will have your forced footer, the same goes if you want a header.

 

To Disable Ads On An Individual Site

Create another .htaccess file with the following contents:

php_value output_buffering 4098
AddType application/x-httpd-php htm
AddType application/x-httpd-php html
php_value auto_append_file '/var/www/ads/blank.php'

and place it in the /web directory of that site.

And that's it guys, you now have forced ads.

Share this page:

7 Comment(s)