.HTACCESS compatible wamp et production

WRInaute discret
Bonjour,

Je suis en train d'essayer de faire en sorte que mon .htaccess fonctionne en local comme en ligne, ce qui n'est pas le cas actuellement.

Si par exemple mon site a comme url: h**p://www.mon-site.fr/
et en local: h**p://localhost/mon-site/

Comment puis-je rendre cette ligne compatible ?
Code:
RewriteRule ^zone.html$  /zone.php [L]
En ligne elle fonctionne
en local j'ai
Code:
Not Found
The requested URL /zone.php was not found on this server.
J'ai essayé d'utiliser la variable %{HTTP_HOST} comme ceci:
Code:
RewriteRule ^zone.html$  %{HTTP_HOST}/zone.php [L]
Mais la j'obtiens:
Code:
Not Found
The requested URL /mon-site/localhost/zone.php was not found on this server.
Il faudrait que le localhost soit devant /mon-site/ et non aprés comme ci-dessus.
Comment faites-vous pour que ca marche dans les deux cas ?

Je suis preneur de toutes infos à ce sujet.

Merci d'avance. :wink:
 
WRInaute occasionnel
Pour pas t'embêter tu devrais créer un virtual host local, par exemple : http://www.mon-site.local qui pointe vers ton /mon-site/
ça t'évite d'avoir le localhost en url et ton site dans un "sous-repertoire" donc des htaccess identique.

Pour ça il faut créer un virtualhost dans wamp (soit dans un fichier spécifique situés dans le répertoire extras de wamp soit dans la conf d'apache ça dépend de ta version de wamp) puis modifier le fichier hosts de windows (c:/windows/system32/drivers/etc/hosts de mémoire...) avec un éditeur texte (plus galère sous vista que xp mais faisable dans les deux cas...)

Je suis avec mon mac là...donc j'ai pas tous les chemins et les lignes exactes en tête mais si quelqu'un passe par là...sinon demain !
 
WRInaute discret
Bonjour et merci de vos réponses.

Je pense que c'est exactement ce que je recherche.

J'ai suivi le tuto du lien donné par forty.

Par contre je ne suis pas sur de mon coup sur le httpd-vhosts.

Si je crée
127.0.0.1 mon-site.local
127.0.0.1 http://www.mon-site.local

Que dois-je mettre dans
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost"
ServerName dummy-host.localhost
ServerAlias http://www.dummy-host.localhost
ErrorLog "logs/dummy-host.localhost-error.log"
CustomLog "logs/dummy-host.localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.localhost"
ServerName dummy-host2.localhost
ErrorLog "logs/dummy-host2.localhost-error.log"
CustomLog "logs/dummy-host2.localhost-access.log" common
</VirtualHost>

C'est un peu différents du topic et pas envie de faire une boulette :?
Je suis supris de voir par exemple:
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.localhost"
Il n'y a pas de référence a wamp

J'ai trouvé 2 fichiers httpd-vhosts
C:\wamp\bin\apache\Apache2.2.10\conf\extra
C:\wamp\bin\apache\Apache2.2.10\conf\original\extra

Ils ont tous les deux un contenu identique, dois-je modifier les deux ?
Merci
 
WRInaute passionné
tu as mal lu ;)
dans ton fichier hosts tu mets :
Code:
127.0.0.1 mon-site.local www.mon-site.local
ca défini le lien entre l'adresse IP local et le nom de domaine "mon-site.local" et son alias "www.mon-site.local"

après tu ajoutes à la fin du fichier httpd.conf qui doit se trouver par exemple dans D:\Program Files\wamp\bin\apache\apache2.2.8\conf\httpd.conf :
Code:
<VirtualHost *:80>
	DocumentRoot "D:/Program Files/wamp/www/"
	ServerName localhost
</VirtualHost>

<VirtualHost *:80>
	DocumentRoot "D:/Program Files/wamp/www/repertoire-site/"
	ServerName mon-site.local
	ServerAlias www.mon-site.local
</VirtualHost>
 
WRInaute discret
si j'ai bien compris, tu élimine complétement
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost"
ServerName dummy-host.localhost
ServerAlias http://www.dummy-host.localhost
ErrorLog "logs/dummy-host.localhost-error.log"
CustomLog "logs/dummy-host.localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.localhost"
ServerName dummy-host2.localhost
ErrorLog "logs/dummy-host2.localhost-error.log"
CustomLog "logs/dummy-host2.localhost-access.log" common
</VirtualHost>

que tu remplace par :
<VirtualHost *:80>
DocumentRoot "D:/Program Files/wamp/www/"
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "D:/Program Files/wamp/www/repertoire-site/"
ServerName mon-site.local
ServerAlias http://www.mon-site.local
</VirtualHost>

Si c'est bien cela, maintenant quand je rentre http://www.mon-site.local dans mon navigateur j'arrive sur l'index du localhost et je vois tous mes projets. Si je pointe sur le site en question, le lien pointe vers http://www.mon-site.local/mon-site/ (je pense que c'est pas bon)

Désolé, j'ai un peu de mal.
 
WRInaute passionné
le fichier httpd-vhosts.conf est un exemple qui n'est pas utilisé par défaut.
l'include est en commentaire dans le fichier httpd.conf :
Code:
#Include conf/extra/httpd-vhosts.conf
 
Nouveau WRInaute
Bonjour,

J'ai aussi la même problème.

sur mon fichier etc
127.0.0.1:9000 www.monsite.local

sur mon ficher http.conf
NameVirtualHost *:9000

<VirtualHost *:9000>
DocumentRoot "c:/wamp/www/"
ServerName localhost
</VirtualHost>

<VirtualHost *:9000>
DocumentRoot "c:/wamp/www/monsite/"
ServerName monsite.local
ServerAlias www.monsite.local
</VirtualHost>

mais il est tombe sur 127.0.0.1:80.
port 80 j'ai utilise déjà pour mon IIS
et a partir de 9000 pour Apache.

Merci d'avance,
Stev
 
Nouveau WRInaute
Merci pour votre réponds, mais ça marche pas.

mon fichier .htacces:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www.monsite.local$ [NC]

RewriteRule ^(.*)$ http://www.monsite.local/$1 [L,R=301]

RewriteRule ^location-vacances-locations-saisonnieres-eco.php$ location-vacances-ecologique.php [L,R=301]
RewriteRule ^locations-vacances-saisonnieres-index.php$ http://www.monsite.local [L,R=301]

RewriteRule ^index.php$ http://www.monsite.local [L,R=301]
RewriteRule ^eco.php$ location-vacances-ecologique.php [L,R=301]

et la position dans http.conf:
</IfModule>
</IfModule>

# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#

NameVirtualHost *:9000

<VirtualHost *:9000>
DocumentRoot "c:/wamp/www/"
ServerName localhost
</VirtualHost>

<VirtualHost *:9000>
DocumentRoot "c:/wamp/www/monsite/"
ServerName monsite.local
ServerAlias www.monsite.local
</VirtualHost>


#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. admin@your-domain.com
#
ServerAdmin admin@localhost

Merci d'avance,
Stev
 
Discussions similaires
Haut