Surfoo Posté 30 Octobre 2005 Posté 30 Octobre 2005 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 +FollowSymlinksRewriteEngine onRewriteRule ^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.
e.MiLoU Posté 30 Octobre 2005 Posté 30 Octobre 2005 Si il fait une erreur 404, c'est que le fichier n'existe pas... As-tu bien une page qui s'appele nexistepas.html??
oxyd-x Posté 30 Octobre 2005 Posté 30 Octobre 2005 Salut Surfoo et bienvenue sur le hub ;-) essaye de remplacer le contenu de ton htaccess par celui-ci : Options +FollowSymLinksRewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)\.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.
Surfoo Posté 30 Octobre 2005 Auteur Posté 30 Octobre 2005 (modifié) 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é 30 Octobre 2005 par Surfoo
oxyd-x Posté 30 Octobre 2005 Posté 30 Octobre 2005 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.
Surfoo Posté 30 Octobre 2005 Auteur Posté 30 Octobre 2005 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.
oxyd-x Posté 31 Octobre 2005 Posté 31 Octobre 2005 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
Surfoo Posté 31 Octobre 2005 Auteur Posté 31 Octobre 2005 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 +FollowSymLinksRewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)\.htm(l)?$ /index.php Quand je tape : http://127.0.0.1/IMManager/ffgfg.htm Ça me fait : Not FoundThe 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 :/
Compte supprimé Posté 31 Octobre 2005 Posté 31 Octobre 2005 Si ça peut t'aider, en local chez moi je fais : RewriteRule (.*)\.htm(l)?$ /chemin_depuis_le_127.0.0.1/index.php Ca marche comme ça je n'ao pas plus creusé.
Surfoo Posté 31 Octobre 2005 Auteur Posté 31 Octobre 2005 (modifié) 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 AllowOverride = All pour donner la priorité aux fichiers .htaccess Modifié 31 Octobre 2005 par Surfoo
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant