title: How to write "if...else" mod_rewrite statements in .htaccess
body: <p>I've scoured StackOverflow for an answer to this and seen many questions come close, but nothing is working for me yet.</p>
  
  <p>I'd like to have my <code>.htaccess</code> apply different rules based on the domain calling it.  Basically, if subdomain.example.com is hit, redirect to google.com.  If localhost is hit, redirect to yahoo.com.  If www.example.com (or example.com) is hit, redirect to bing.com.</p>
  
  <p>I'll be adding in actual rewrite rules (setting environment variables and htpasswd protection) later, but first I need to get the "if then" part working.</p>
  
  <p>My (non-working) code is below.  Any help is greatly appreciated.</p>
  
  <pre><code>RewriteEngine On
  RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$
  RewriteRule http://google.com/ [L,R=301]
  
  RewriteCond %{HTTP_HOST} ^localhost$
  RewriteRule http://yahoo.com/ [L,R=301]
  
  RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
  RewriteRule http://bing.com/ [L,R=301]
  </code></pre>
  
  <p><strong>EDIT: Updated (but still non-working) code based on Barta's comment below.</strong></p>
  
  <pre><code>RewriteEngine On
  
  RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule .? - [S=1]
  RewriteRule ^(.*)$ /index.php/$1 [L]
  
  RewriteCond %{HTTP_HOST} ^localhost$
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule .? - [S=7]
  RewriteRule ^(.*)$ /subdir/www/index.php/$1 [L]
  RewriteRule ^ - [E=MYSQL_DB_HOST:localhost]
  RewriteRule ^ - [E=MYSQL_DB_NAME:XXX]
  RewriteRule ^ - [E=MYSQL_USERNAME:XXX]
  RewriteRule ^ - [E=MYSQL_PASSWORD:XXX]
  RewriteRule ^ - [E=BASE_URL:XXX]
  RewriteRule ^ - [E=ENVIRONMENT:XXX]
  
  RewriteCond %{HTTP_HOST} ^example\.com$
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule .? - [S=1]
  RewriteRule ^(.*)$ /index.php/$1 [L]
  </code></pre>