2010-01-12 12 views
21

Me gustaría que mi archivo .htaccess especifique una RewriteBase diferente dependiendo de si el archivo .htaccess está en mi máquina local o en un servidor web. Este es el código mod_rewrite he intentado, sin embargo, no funcionó:Con mod_rewrite, ¿puedo especificar RewriteBase dentro de RewriteCond?

RewriteCond %{HTTP_HOST} ^localhost:8080 
RewriteBase /example/ 
RewriteCond %{HTTP_HOST} ^www.example.com 
RewriteBase/

Esto sería muy útil para previsualizar fácilmente a varios sitios web en mi máquina local y luego ser capaz de cargar a los lugares a los servidores web de dominio individual nombres.

Respuesta

30

La única solución que finalmente encontramos parece que eso:

# 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] 

Este código ofrece una forma de simular differentes "RewriteBase".

+1

Increíble. ¡Gracias! – Matthew

+0

¿Pudo averiguar por qué un 'RewriteBase' condicionado no funciona? Estoy lidiando con el mismo problema en este momento. – cballenar

Cuestiones relacionadas