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.