With mod_rewrite can I specify a RewriteBase within a RewriteCond?
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 /开发者_JS百科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.
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".
精彩评论