Aller au contenu

Problème d'url rewriting


Sujets conseillés

Bonjour à tous,

Je sous Ubuntu avec Apache 2.0.54 et PHP 5.0.5, c'est donc mon propre serveur en local. Le mod_rewrite est activé (je le vois dans phpinfo).

J'ai testé l'exemple disponible sur cette page : http://www.webmaster-hub.com/publication/article5.html

J'ai donc mis le texte suivant dans le .htaccess :

Options +FollowSymlinks
RewriteEngine on
RewriteRule   ^nexistepas.html$   trouve.html  [L]

Premier test : Erreur 500. Je commente la ligne Options +FollowSymlinks et je recommence.

J'obtiens une erreur 404. Je ne sais pas vraiment quoi faire là.

Il faurt que je modifie quelquechose dans la configuration d'Apache ?

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Salut Surfoo et bienvenue sur le hub ;-)

essaye de remplacer le contenu de ton htaccess par celui-ci :

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.htm(l)?$ /index.php

créer un fichier "index.php" que tu placera à la racine de ton site, et ensuite, à partir de ton navigateur, tente d'appeler une page html inéxistante :

http://localhost/trucbidon.html

Si tu obtient toujours des erreurs, vérifie ta configuration apache, notamenent le fait que tu autorise l'utilisation de commandes dans un fichier htaccess.

Voila, tiens-moi au courant ;)

oxyd.

Lien vers le commentaire
Partager sur d’autres sites

Euh non ma page s'appelle trouve.html et j'appelle la page nexistepas.html dans la barre d'URL.

Edit : Bon je viens de tester ce que tu me dit oxyd-x.

Options +FollowSymLinks me donne toujours une erreur 500 :/ je l'ai commenté pour le moment mais je sais pas comment faire pour que ça le fasse plus dans la config d'Apache.

Sinon j'ai un fichier index.php, mais quand j'écris le nom d'une page bidon dans l'URL => Erreur 404

Il faut vérifier quoi dans la config d'Apache pour que ça fonctionne ?

Merci de votre aide :)

Modifié par Surfoo
Lien vers le commentaire
Partager sur d’autres sites

Re ;)

dans ton fichier de configuration, plus précisement dans la section "répertoire" principal; vérifie que tu dipose d'une configuration de type :

<Directory "/home/www">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
   Order allow,deny
   Allow from all
</Directory>

vérifie aussi (phpinfo();) que ton serveur accepte le rewriting, en base.

Lien vers le commentaire
Partager sur d’autres sites

bon ça change rien, j'ai mis ça dans pour le répertoire mais j'ai toujours l'erreur 404.

Et euh en fait j'ai oublié de parler d'un truc :

J'ai une url qui se nomme contact, qui renvoie vers contact.php et ça fonctionne mais j'ai une autre url de la forme liste,1,1 (pour liste.php?a=1&t=1) qui me fait erreur 404.

Désolé pour l'oubli.

Lien vers le commentaire
Partager sur d’autres sites

Afin de pouvoir t'aider correctement, il me faudrait un peu plus d'informations;

- le contenu de ton fichier .htaccess

- l'url virtuelle (complete) que tu aimerais pouvoir utilisée

- l'adresse réelle (complete) du document sur ton serveur

Lien vers le commentaire
Partager sur d’autres sites

Bon, j'ai l'impression qu'il y a un problème : Quand je renomme .htaccess en .htaccess_, le serveur fait quand même fonctionner l'url rewriting. Mon fichier de base c'est :

http://127.0.0.1/IMManager/contact.php et dans la barre d'adresse c'est :

http://127.0.0.1/IMManager/contact (sans le .php donc)

et donc quand je renomme le fichier ça marche quand même ! -_-

Mon fichier .htaccess :

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.htm(l)?$ /index.php

Quand je tape :

http://127.0.0.1/IMManager/ffgfg.htm

Ça me fait :

Not Found

The requested URL /index.php was not found on this server.

mais si je tape :

http://127.0.0.1/IMManager/contact

Ça m'affiche bien la page contact.php, alors que rien n'est indiqué dans le fichier .htaccess -_-

Et si je tape :

http://127.0.0.1/IMManager/liste,1,1

Ça me renvoie une erreur 404 :/

Lien vers le commentaire
Partager sur d’autres sites

Bon, tout fonctionne.

En fait ça viens de configuration d'Apache et du AllowOverride qui était à None avant et qui est maintenant à All.

Ça sert à quoi le AllowOverride ?

En tout cas, merci pour votre aide :)

Edit : j'ai trouve :P

AllowOverride = All pour donner la priorité aux fichiers .htaccess

Modifié par Surfoo
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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