22

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.

1 Answers1

32

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".

gnutix
  • 321
  • 3
  • 2
  • Were you able to figure out why a conditioned `RewriteBase` doesn't work? I'm dealing with the same issue at the moment. – cballenar May 12 '17 at 14:00