Difference between revisions of "Apache/Rewrite"

From braindump
Jump to navigation Jump to search
(Created page with "{{DISPLAY_TITLE:Apache mod_rewrite recipes}} == Recipes == === Redirect to file with different extension == Assuming some file have changed from <tt><basename>.html</tt> to <t...")
 
Line 1: Line 1:
{{DISPLAY_TITLE:Apache mod_rewrite recipes}}
{{DISPLAY_TITLE:Apache mod_rewrite recipes}}
== Recipes ==
== Recipes ==
=== Redirect to file with different extension ==
=== Redirect to file with different extension ===
Assuming some file have changed from <tt><basename>.html</tt> to <tt><basename>.php</tt>. The server should only redirect if the <tt><basename>.html</tt> file does not exist.
Assuming some file have changed from <tt><basename>.html</tt> to <tt><basename>.php</tt>. The server should only redirect if the <tt><basename>.html</tt> file does not exist.
<IfModule mod_rewrite.c>
<IfModule mod_rewrite.c>

Revision as of 01:21, 24 December 2013

Template:DISPLAY TITLE:Apache mod rewrite recipes

Recipes

Redirect to file with different extension

Assuming some file have changed from <basename>.html to <basename>.php. The server should only redirect if the <basename>.html file does not exist.

<IfModule mod_rewrite.c>
  RewriteEngine Off
  ## RewriteLog  /var/tmp/rewrite_log
  ## RewriteLogLevel  9
  RewriteCond %{DOCUMENT_ROOT}$1 !-f
  RewriteCond $3 ^.html?$
  RewriteRule ((.*)(\.html?)) $2.php [L]
</IfModule>

The first RewriteCond is to check if the file exists or not the second one determines if the extension is either .htm or .html. Finally the RewriteRule swaps out the file extension and hands it back [L].