I want to update all the pages on a website to use include for the footer and header. So I have to change a lot of .html pages to .php.
So i\'m looking for a way to
mod_rewrite to the rescue!
RewriteEngine On
RewriteRule ^(.+)\.html$ $1.php
You could do a more simple approach and have all your html files be processed as php files by adding the following line to your .htaccess
AddHandler application/x-httpd-php .php .html
RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php [L]
If you want it to be done as a redirect instead of just a rewrite modify the [L]
to [L,R]
Note that the AddType command will process your existing html file as php. If what you wanted was to replace an existing html file with a new php file you need to use the rewrite rule.
In your apache httpd.conf file you can add
AddType application/x-httpd-php .html
to make .html files go through the php parser before they are served to the user. You can also add this directive to your .htaccess file. The second method may not work depending on how your host is setup.
If you want an actual HTTP 301 Moved Permanently
Redirect
RewriteEngine on
RedirectMatch 301 ^(.*)\.html$ $1.php
or
RewriteEngine on
RewriteCond %{THE_REQUEST} \ /(.+)\.php
RewriteRule ^ /%1.html [L,R=301]