With mod_rewrite can I specify a RewriteBase within a RewriteCond?

mod-rewrite

Solution

The only solution we finally found looks like that :

# Activation of the URL Rewriting
Options +FollowSymlinks
RewriteEngine On

# RewriteBase equivalent - Production
RewriteCond %{HTTP_HOST} !^localhost$
RewriteRule . - [E=REWRITEBASE:/production/path/]

# RewriteBase equivalent - Development
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule . - [E=REWRITEBASE:/development/path/]

# Rewriting
RewriteRule ^(.*)$ %{ENV:REWRITEBASE}index.php?page=$1 [L]

This code offers a way to simulate differents "RewriteBase".

Problem

I'd like to have my .htaccess file specify a different RewriteBase depending on whether the .htaccess file is on my local machine or on a web server. This is the mod_rewrite code I tried, however, it did not work: ``` RewriteCond %{HTTP_HOST} ^localhost:8080 RewriteBase /example/ RewriteCond %{HTTP_HOST} ^www.example.com RewriteBase / ``` This would come in handy for easily previewing several websites on my local machine and then being able to upload those sites to web servers for individual domain names.

Original source