#1 Le 01/05/2013, à 15:28
- Zuglich
[RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
Bonjour,
Je sais que ce sujet a été posé 1000 fois au moins,
mais après de longue recherche sur le forum, je n'ai trouvé aucune solution a mon problème (Bon j'avoue ne pas avoir fait les + de 10 pages de résultat sur google )
J'ai un serveur LAMP installé sur une machine virtuel Ubuntu 12.10 (Hôte Windows 7)
Depuis deux jours maintenant, je m’arrache les cheveux a tenter par tous moyens de faire fonctionner le module rewrite
Je m'explique :
Le module rewrite est bien activé, l'htaccess est pris en compte (pour en être sur je l'ai fait planter)
Les règles de réécriture sont bonne, elles fonctionne partout ailleurs mais j'ai l'impression qu'il lance même pas la réecriture.
J'obtient une erreur 404.
2 choses me font penser que le pb vient du module rewrite :
Premièrement, j'ai activé les log pour la réécriture en level 9 (Le fichier rewrite.log a bien été créer une fois le serveur relancé mais il est vide, quoi que je fasse, quoi que je teste)
Deuxièmement, j'ai testé sur Windows en plantant ma régle pour tomber sur un 404 et j'obient ce message : 'The requested URL /boutique_demo/v2/index.php was not found on this server' a l'adresse index.html
Ici, la réecriture a bient été fait, c'est le fichier qui n'existe pas.
Mais sous ubuntu, j'optient ceci 'The requested URL /boutique_demo/index.html was not found on this server.' a l'adresse index.html
Apparemment, il n'a pas réécrit l'URL ! (Ce sont exactement les même régles)
Les logs d'apache m'indique également qu'il va chercher le fichier index.html.
Voici les fichiers :
.htaccess (dsl je n'ai pas réussi a indenter correctement ...)
RewriteRule ^(vente)-(.*)-c([0-9]+)-([0-9]+).html$ /boutique_demo/index.php?pg=produits&url_pg=$1-$2&id_categorie=$3&p=$4 [L]
RewriteRule ^(vente)-(.*)-c([0-9]+).html$ /boutique_demo/index.php?pg=produits&url_pg=$1-$2&id_categorie=$3 [L]
RewriteRule ^(achat)-(.*)-a([0-9]+).html$ /boutique_demo/index.php?pg=produit&url_pg=$1-$2&id_produit=$3 [L]
RewriteRule ^(espace-client)-(.*)-(ajouter).html$ /boutique_demo/index.php?pg=$1&spg=$2&mode=ajouter [L]
RewriteRule ^(espace-client)-(.*)-(editer|supprimer)-([0-9]+).html$ /boutique_demo/index.php?pg=$1&spg=$2&mode=$3&id=$4 [L]
RewriteRule ^(espace-client)-(commandes)-([0-9]+).html$ /boutique_demo/index.php?pg=$1&spg=$2&id=$3 [L]
RewriteRule ^(espace-client)-(.*).html$ /boutique_demo/index.php?pg=$1&spg=$2 [L]
RewriteRule ^validation-(.*)-(.*).html$ /boutique_demo/index.php?pg=validation&type=$1&etat=$2 [L]
RewriteRule ^recherche-(.*).html$ /boutique_demo/index.php?pg=recherche&p=$1 [L]
RewriteRule ^(.*).html$ /boutique_demo/index.php?pg=$1 [L]
/etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
ServerAdmin admin@localhost.fr
DocumentRoot /var/www
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride AuthConfig FileInfo Indexes Limit
</Directory>
<Directory /var/www/>
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride AuthConfig FileInfo Indexes Limit
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Merci énormément pour votre aide parce que la, je n'ai aucune idée de quoi faire...
Dernière modification par Zuglich (Le 02/05/2013, à 17:35)
MARGALEF Pierre
Développeur PHP
Hors ligne
#2 Le 01/05/2013, à 21:39
- tiramiseb
Re : [RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
Salut,
1/ Pourquoi as-tu mis ces lignes dans un fichier .htaccess et non dans la configuration d'Apache ? Les fichiers .htaccess, c'est pour quand on n'a pas accès à la configuration d'Apache... Pour des raisons de performance, il vaut mieux les désactiver quand on est admin du serveur...
2/ Je ne vois pas la directive RewriteEngine On dans ce que tu montres... Tu l'as oubliée dans ta conf, ou alors tu ne l'as juste pas montrée ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 02/05/2013, à 03:36
- Zuglich
Re : [RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
Bonjour,
Tout d'abord merci de répondre ,
1) Je sais bien malheureusement mais c'est une contrainte du boulot, je n'ai quasiment jamais accès a la config d'apache au bureau. Je suis développeur.
2) Effectivement le fichier n'est pas complet, mais la directive est bien présente.
Merci
Dernière modification par Zuglich (Le 02/05/2013, à 03:41)
MARGALEF Pierre
Développeur PHP
Hors ligne
#4 Le 02/05/2013, à 07:21
- tiramiseb
Re : [RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
1) Je sais bien malheureusement mais c'est une contrainte du boulot, je n'ai quasiment jamais accès a la config d'apache au bureau. Je suis développeur.
C'est un cas qui (malheureusement) justifie cette utilisation.
Si c'est pour un site en dev, il y a peut-être moyen de faire migrer le contenu de ton ".htaccess" dans la configuration d'Apache histoire d'améliorer les perfs du serveur de prod qui passera derrière.
Menfin bon, on rencontre bien trop souvent des admins qui ne sont pas très très bons, dans les entreprises (bien sûr je ne connais pas les tiens, peut-être qu'ils sont bons, eux )
2) Effectivement le fichier n'est pas complet, mais la directive est bien présente.
Ah ben si en plus tu nous induis en erreur...
3/ Quand tu essaies d'accéder à ton site pour tester les règles de rewrite, tu vas à la racine du site ou alors tu entres un nom de page tel qu'accepté par tes règles de rewrite ?
4/ Si déjà tu fais des jolies règles de Rewrite, tu peux peut-être enlever ce horrible ".html", non ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 02/05/2013, à 17:07
- Zuglich
Re : [RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
Re,
Oui c'est un oubli de ma part désolé.
3) La racine du site fonctionne très bien, mais dés que je passe sur une page a l'adresse *.html -> 404
4) Je veut bien te croire, mais c'est mon collègue qui a fait ces règles, je ne préfère pas trop y toucher, il est quand même meilleur que moi pour les fichier htaccess. De toute façon nous somme en train de refaire la boutique entièrement, règle y compris
C'est vrai qu'il faudrait que je m'y mette sérieusement, mais je manque de temps....
En ce qui concerne les admins, nous somme une petite boite de com perdu en campagne nous n'en avons pas .... nous n’hébergeons aucun site chez nous. Mais bon j'ai bon espoir que la situation évolue un jour...
Je revient sur ce que j'ai dis dans mon premier post, étant donnée que il va bien chercher un fichier .html et non .php c'est bien que la réécriture ne se fait pas ? sachant également que les logs sont toujours vide ....
C'est étrange quand même, le module est bien activé, j'ai bien regardé, aucune directive ne semble manquer, mais il n'a pas l'air de se lancer ... a tu déjà rencontré un problème similaire ?
Merci
MARGALEF Pierre
Développeur PHP
Hors ligne
#6 Le 02/05/2013, à 17:12
- Zuglich
Re : [RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
Apparemment, je vient de tester, ça fonctionne .... mais je n'ai aucune idée de comment ni pourquoi ... Je n'ai strictement rien changé a ce que j'avait fait hier soir et je n'ai pas testé de la journée ....
Je ne comprend pas ....
Ça m’embête de ne pouvoir donner plus d'explication sur la résolution du problème.
Petite question, comment modifie t'on le titre d'un message ?
Dernière modification par Zuglich (Le 02/05/2013, à 17:17)
MARGALEF Pierre
Développeur PHP
Hors ligne
#7 Le 02/05/2013, à 17:28
- tiramiseb
Re : [RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
Apparemment, je vient de tester, ça fonctionne ....
C'est chelou
J'allais te répondre que j'ai peut-être trouvé la source de ton problème : Il faut mettre un "/" au début de ta règle RewriteRule :
RewriteRule ^/machintruc
et non :
RewriteRule ^machintruc
Mais bon, si ça marche...
Petite question, comment modifie t'on le titre d'un message ?
Tu cliques sur "Modifier", sur le premier message de la discussion.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#8 Le 02/05/2013, à 17:37
- Zuglich
Re : [RESOLU] module rewrite apache2 | Impossible de le faire fonctionner
C'est simple mais faut le savoir
Quoi qu'il en soit, merci de ton aide.
MARGALEF Pierre
Développeur PHP
Hors ligne