Aller au contenu

rewrite, j'insiste.


Sujets conseillés

Posté

Bon, j'en ai marre de ne pas conprendre.

J'ai php 4.3.3, Apache 1.3.27.

J'ai modifié le httpd.conf, afin que les lignes

LoadModule rewrite_module modules/mod_rewrite.so

AddModule mod_rewrite.c

soient prises en compte.

Je reteste bêtement le rewrite_url, avec l'exemple donné ici: http://www.webmaster-hub.com/publication/article5.html ( le rewrite des pages nexistepas.html et trouve.html).

Résultat négatif.

Je regarde dans le phpinfo() si le mod_rewrite est actif. ET là, rien. pas de notion d'url_rewrite, hormis celui concernant les tags.

Ah, je suis en local.

Could you help me, please, afin de me dire pourquoi je ne dois pas balancer l'ordi par la fenêtre ?

Merci,

xpatval

Posté

Xpatval,

"résultat négatif" ? Ca veut dire quoi ? Erreur 500 ou 404 ?

Essaies simplement avec ceci:

RewriteEngine on
RewriteRule toto.html index.php

pour autant que tu aies une page index.php ;)

En appelant la page -http://tondomaine.tld/toto.html dans la barre d'adresse de ton navigateur, tu obtiens quoi ?

Dan

Posté

Une belle erreur 400 requête incorrecte !!!

avec

Options +FollowSymlinks
RewriteEngine on
RewriteRule toto.html index.php

dans le .htacces

Guest azeitona
Posté

oulala, ca doit venir de ton apache, c'est ton serveur ?

Posté
Une belle erreur 400 requête incorrecte !!!

avec

Options +FollowSymlinks
RewriteEngine on
RewriteRule toto.html index.php

dans le .htacces

As-tu essayé en enlevant la ligne Options +FollowSymlinks ?

C'est la seule qui peut poser problème si tu tournes en local, les liens symboliques n'existant pas sous Windows, du moins pas sous la forme connue par Apache/Linux ;)

Posté
oulala, ca doit venir de ton apache, c'est ton serveur ?

Yeap !

As-tu essayé en enlevant la ligne Options +FollowSymlinks ?

Yeap too.

Même problème.

Le mess d'erreur Apache:

Invalid URI in request GET /monsite/toto.html HTTP/1.1

:?::?::?:

xpatval

Posté

Salut Xpatval,

Tu as manifestement un problème de configuration.

Je ne sais pas sur quoi tu tournes... Windows ? Ni comment tu as installé Apache/Php ...

Si tu as opté pour la facilité et utilisé EasyPhp, je te suggère d'envisager une réinstallation apache/php/mysql complète.

Sauves tes bases mysql, et désinstalle le tout (y compris les services Windows)

Ensuite, installes Wampserver (http://www.wampserver.com). C'est une installation facile. Un double-clic comme une simple appli Windows. Au moins tu auras des versions récentes d'Apache, Php et Mysql et non plus les versions anciennes que tu utilises actuellement.

Le tout ne devrait pas te prendre plus de 10 minutes, et tu verras que le confort d'utilisation sera au rendez-vous.

Dan

Posté (modifié)

Et oui, je suis sous Windows xp, avec easyphp.

Je vais déjà leur poser la question, mais c'est la première fois que je rencontrerais un problème avec ce pack... :huh:

Par contre, tu me parles des services windows,mais quels sont-ils ?

xpatval

Modifié par xpatval
Guest azeitona
Posté

ah tu travaille en local avec easyphp,

tu arrive a renommer ton fichier en .htaccess sur windows ???

Sinon, j'ai un doute sur le fonctionnement de l'url rewriting en local avec easyphp...

Posté
tu arrive a renommer ton fichier en .htaccess sur windows ???

Oui, quelques soucis lors de la première tentative, mais j'ai trouvé la combine.

Pour l'url_rewriting en local, ce qui est sur chez moi, c'est que le mod_rewrite n'est pas activé malgré la décommentarisation des lignes spécifiques dans le httpd.conf.

Ce qui es bizarre...

Posté

Réponse du forum d'easyphp:

Le Rewrite gere toto.html, pas /monsite/toto.html !

Pas d'autre solution que potasser les expressions regulieres. Bon courage.

Vous en pensez quoi ?

Posté

Ce topic m'interesse également, je n'ai jamais réussi à faire tourner l'Url Rewriting en local avec Easyphp.

Pourtant c'est d'une importance capitale, en effet, j'avais envie de montrer mes sites à ma mamie :D

On est donc obligé d'utiliser Wampserver ? Ok, je vais tenter ça.

Loïc.

Posté

J'ai bien installé Wamp. Le site tourne très bien parcontre il ya un problème s'url rewriting.

Après avoir vérifié phpinfo(), le module rewrite n'apparait pas dans "aditionnal module", ce malgré que j'ai décoché "AddModule mod_rewrite.c" et "LoadModule rewrite_module modules/mod_rewrite.so" dans httpd.conf

Décidement, je ne sais pas si j'arriverai à montrer mes sites à Mamie :wacko:

Loïc.

Posté

Assures-toi de redémarrer apache. J'ai wampserver chez moi et tout roule question réécritures. Attention aussi au "DOCUMENT_ROOT" qui varie entre ton installation locale et l'hébergement sur serveur. Pour qu'elle soit compatible, il faut créer des VirtualHost pour tes sites et ne pas accepter l'organisation par défaut en sous-répertoire du répertoire principal.

Si tu laisses l'organisation standard, il faut garder à l'esprit que toute réécriture appellant la racine / sera effective, mais ne mènera pas au niveau où se trouvent les fichiers du site mais bien au niveau supérieur.

Dan

PS: en clair, il ne faut pas que le deuxième argument d'une RewriteRule commence par / ;)

Posté (modifié)

Voilà mon .htaccess, j'ai essayé avec et sans /, rien n'y fait. Un clic sur un lien rewrité renvoie au la racine de localhost (avec l'url rewritée dans la barre d'adresse :wacko: ).

RewriteEngine on 
RewriteRule ^ccs-([aA-zZ]+).html$ index.php?page=$1 [NC,L]
RewriteRule ^ccs-([aA-zZ]+)-([aA-zZ]+).html$ index.php?page=$1&action=$2 [NC,L]
RewriteRule ^ccs-([aA-zZ]+)-([0-9]+).html$ index.php?page=$1&numero_page=$2 [NC,L]

Ne faudrait-il pas plutôt chercher la raison pour laquelle le module_rewrite ne figure pas dans "Additionnal Modules" ? (oui, j'ai bien redémarré Apache, d'ailleur j'ai carrément redémarré le pc).

Loïc.

Modifié par Cleden
Posté
Ne faudrait-il pas plutôt chercher la raison pour laquelle le module_rewrite ne figure pas dans "Additionnal Modules" ?

Cela m'interloque, voire m'interpelle (à tarte ?) aussi quelque peu.

Je n'ai pas encore décidé de bosser avec Wamp, (je m'accroche à easyphp, niark), mais la remarque de Cleden vaut aussi pour easy.

Pourquoi le mod-rewrite n'apparaît pas dans les load modules d'apache (phpinfo()), oui, pourquoi ? POURQUOI ? Argghh, je me sens las...tellement las...

:whistling:

xpatval

Posté

En fait, le problème semble venir du non-chargement du module mod_rewrite dans ma config (easyphp1.7)

Un apache.exe -l ne le montre pas. D'où la question de savoir comment le charger.

Dans la doc apache, cette ligne est à placer pour intégrer l'url_rewriting

Pour exploiter ce module, vous devez ajouter les lignes suivantes dans le fichier Configuration de configuration de compilation :

    AddModule  modules/standard/mod_rewrite.o

OK ok ok. Mais A LA PLACE DE ? En plus de ?

Posté

Tu ne dois pas l'ajouter dans un fichier de configuration de compilation, vu que Apache est déjà compilé.

Par contre, il faut l'ajouter dans le fichier de configuration Apache (httpd.conf) sauf pour Apache 2.0.x pour lequel il est inclus d'office.

Tu dois donc ajouter 2 lignes, ou plutôt les décommenter dans ce fichier:

LoadModule rewrite_module modules/mod_rewrite.so

et

AddModule mod_rewrite.c

Assures-toi que le chemin est le bon pour le premier (loadmodule), j'ai copié cela de ma config et elle peut différer chez toi.

Dans le doute, envoies-moi ton fichier httpd.conf par MP

Dan

PS: apache.exe -l ne liste que les modules compilés dans apache, pas les modules dynamiques ajoutés au démarrage. C'est normal et ce module n'est pas listé chez moi non plus ;)

Posté

Je complèterais en disant qu'il est dommage de rester scotché avec Apache 1.3.27 alors que la version 1.3.32 est sortie.

Tu y gagnerais en stabilité et en sécurité ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...