PHP

Problème avec "URL Rewriting"

Résolu

Bonjour,


J'ai créer un fichier .htaccess j'ai réécrit des pages qui vont très bien par exemple :


Voici mon lien :


<a href="contact" class="nav-link">Contact</a>


Voici ma ligne dans mon fichier .htaccess


RewriteRule ^contact$ contact.php  [L]


Mais dès que je réécris des liens avec un ?id= ça ne fonctionne pas et je n'arrive pas à savoir pourquoi


Voici ma ligne dans mon fichier .htaccess


RewriteRule ^editer-article/([0-9]+)$ /admin/editer-article?id=$1  [L]


j'ai essayé plusieurs autre façon


RewriteRule ^editer-article/([0-9]+)$ $admin/editer-article?id=$1  [L]
RewriteRule ^editer-article/([0-9]+)$ /admin/modifier?id=$1  [L]
RewriteRule ^editer-article/([0-9]+)$ /admin/modifier.php?id=$1  [L]


A savoir que le nom de mon fichier est modifier.php

Ca me donne "pas trouvé"

L'URL demandée n'a pas été trouvée sur ce serveur

En outre, une erreur 404 non trouvée s'est produite lors de la tentative d'utilisation d'un ErrorDocument pour gérer la demande.


Merci pour votre aide


La ligne ci-dessous est mon lien réécrit


<a href="editer-article?id=<?= $post['id'] ?>"><i class="fas fa-pencil-alt"></i></a>
559 vues
27 décembre 2020 à 1:53 (Édité)
Cette pub permet au site de vivre ...
Compte-supprimé
Le 30 Décembre 2020 à 15:23 (Édité)

Bonjour,


Désolé de répondre que maintenant, trop de taf. J'ai trouvé, voici ce que j'ai fait dans mon fichier ".htaccess" :


RewriteRule ^suppression-article/([0-9]+)$ /admin/supprimer.php?id=$1  [L]
RewriteRule ^accueil$ /index.php


et pour ce qui est de mes liens, je les ai tous réécrit :


<a href="/suppression-article/<?= $post['id'] ?>">
<a href="/accueil">


Voilà tout fonctionne très bien.

Cette pub permet au site de vivre ...

5 commentaires

Bonjour,


Désolé de répondre que maintenant, trop de taf. J'ai trouvé, voici ce que j'ai fait dans mon fichier ".htaccess" :


RewriteRule ^suppression-article/([0-9]+)$ /admin/supprimer.php?id=$1  [L]
RewriteRule ^accueil$ /index.php


et pour ce qui est de mes liens, je les ai tous réécrit :


<a href="/suppression-article/<?= $post['id'] ?>">
<a href="/accueil">


Voilà tout fonctionne très bien.

Hello @Meegolo,


Merci d'écrire dans un français correct afin que l'on comprenne au mieux le ou les problèmes que tu rencontres (j'ai fait le nécessaire en rééditant tes messages). Merci.


Pour ton problème, il est important que tu comprennes au mieux ce que tu veux faire. Lis cet article.

Si je comprends bien, tu voudrais avoir des URLs propres du style https://www.sitedudev.com/forum/ par exemple ?

Si c'est cela, ce tuto de Boris devrait t'aider 😉

@Doppler,


Merci pour ta réponse. Entre temps j'avais trouvé il me sufisait d'enlever ?id= et le remplacer dans mon lien par /


<a href="editer-article/<?= $post['id'] ?>"><i class="fas fa-pencil-alt"></i></a>


De cette facon dans mon fichier ça fonctionne très bien par contre si je mets un / devant "admin" ca ne fonctionne pas.

J'ai lu qu'il était bien de mettre une extension comme .html en réécriture. Est-ce vrai ?


RewriteRule ^editer-article/([0-9]+)$ admin/modifier.php?id=$1  [L]


Depuis que j'ai réécris mes URL dans certains fichiers qui ce termine de ce style : article/1 il me garde le dossier "accueil" qui se trouve être la réécriture de ma page index.php donc ça me l'écrit comme suit http://monsite.fr/acceuil/article/1 (1 est l'ID de l'article) et du coup je suis obliger de mettre une adresse différente pour les images de l'article et du CSS au lieu de css/style.css je suis obligé de mettre ../css/style.css et pareil pour mes images.


Il n'y a pas un truc pour éviter ça ?


Merci pour les renseignements

Salut,


Avec l'écriture du lien suivant, ça ne va pas ?


Du genre :


<a href="editer-article/<?= $post['id'] ?>"><i class="fas fa-pencil-alt"></i></a>


la règle suivante dans ton .htaccess :


RewriteRule ^editer-article/([0-9]+)$ /admin/editer-article?id=$1  [L]


elle permet de prendre en compte un paramètre GET sans spécifier dans la méthode originale un paramètre.


Cependant, je pense qu'il était tout de même possible de spécifier un argument avec le fichier HTACCESS avec cette règle :


RewriteRule	^editer-article$ /admin/editer-article.php [L]


A + 😉

Bonjour à tous,


Je continu sur mes liens avec un ?id=


En écrivant ce qui suit cela ne fonctionne pas il me donne l'URL à la fin editer-article?id=1 et il porte bien ce numéro d'ID et ça ne fonctionne pas, mais si je modifie l'URL à la fin mais et que j'écris editer-article/1 ça fonctionne. Apparemment il ne prend pas en compte le /([0-9]+)$


RewriteRule ^editer-article/([0-9]+)$ admin/modifier.php?id=$1  [L]


S'il y en a qui ont la solution, je suis preneur.

Cette pub permet au site de vivre ...