2009-10-08 15 views
0

J'aimerais avoir un fichier .htaccess qui peut réécrire correctement sur mon environnement de développement localhost et sur mon site de production hébergé. À l'heure actuelle, je dois conserver deux copies de fichiers distinctes pour chaque site sur lequel je travaille. Je voudrais être en mesure de synchroniser les deux sites sans emporter l'un de leurs fichiers .htaccess. Ci-dessous le fichier .htaccess que j'utilise avec un petit pseudo-code dans les commentaires pour montrer ce que je veux faire.Comment puis-je écrire un fichier .htaccess qui réécrira différemment en fonction de l'URL de la requête?

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond $1 !^(index\.php|images|robots\.txt|css) 

## IF the url looks like its from localhost then use this rule 
    ## The incoming url might look like: http://localhost/mysite/about 
    RewriteRule ^(.*)$ /mysite/index.php/$1 [L] 
## Else do this rewrite 
    ## The incoming url might look like: http://www.mysite.com/about 
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    ErrorDocument 404 /index.php 
</IfModule> 

Voici mes configurations de serveur:

développement: xampp sur les fenêtres

production: Dreamhost

Répondre

1

Je suis un peu rouillé sur ce point, mais je pense:

RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC] 

#Do your live stuff here 

RewriteCond %{HTTP_HOST} ^localhost$ [NC] 

#Do your local stuff here 
0

Utilisez RewriteCond pour vérifier% {HTTP_HOST}. par exemple:

RewriteCond %{REMOTE_HOST} ^localhost$ 
0

Je voudrais simplement utiliser un environnement virtual host pour votre développement séparé avec les mêmes paramètres que votre serveur de production a.

il suffit d'ajouter un autre conteneur <VirtualHost> à votre httpd.conf ou httpd-vhosts.conf fichier de configuration et régler les paramètres:

<VirtualHost *:80> 
    ServerName example.com.local 
    DocumentRoot /absolute/filesystem/path/to/your/localhost/mysite 
</VirtualHost> 
+0

C'est une bonne idée mais je préfère développer et debug sur mon machine locale puis télécharger les modifications. –