Problème d'Url

Fermé
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 - 24 mai 2013 à 11:58
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 24 mai 2013 à 17:22
Bonjour,

j'ai un petit souci d'Url ou de php je ne sais pas.

J'ai utilisé RewriteRule dans le Htacces comme ceci :

RewriteRule ^article/(.*) article.php?idArt=$1

le prolème c'est que quand je vais sur cette page, le php ne fonctionne pas...

par contre si je marque www.monsite.com/article.php?idArt=1 , ça fonctionne...

Comment faire svp ?

Voici ma page article.php :

<?php
include("header.php");
$article=mysql_fetch_array(mysql_query("SELECT * FROM news WHERE idNews = '{$_GET['idArt']}'"));
?>
<div class="art">
    <h2><?php echo $article['titre']; ?></h2>
    <p>
    publié le <?php echo date("d/m/Y", strtotime($article['dateNews'])); ?>
    </p>
    <img src="http://www.monsite.com/img/<?php echo $article['image']; ?>" alt="<?php echo $article['titre']; ?>" />
    <p class="resumeArt">
        <?php echo $article['resume']; ?>
    </p>
    <a href="http://www.monsite.com/">Retour sur l'accueil</a>
</div>
<?php include("footer.php"); ?>

2 réponses

[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 24/05/2013 à 12:57
Salut JBennn,

Je n'ai pas lu ton code Php (qui a priori fonctionne selon ce que tu dis), mais si tu veux que :

www.monsite.com/1

ou

www.monsite.com/1/

aboutissent à :

www.monsite.com/article.php?idArt=1

Si c'est bien cela, je pense que tu devrais pouvoir utiliser la règle suivante :

RewriteRule    ^([0-9]+)/?$    article.php?idArt=$1   [L]

(non testé)


Dal
1
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
24 mai 2013 à 13:02
J'ai test mais je dois mettre quoi dans le href de mon lien du coup ? stp
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 24/05/2013 à 13:25
Tu peux utiliser la forme réécrite ou la forme expansée. Si la règle de réécriture est exacte, cela mènera au même fichier php avec le paramètre numérique souhaité.

Mais vu que tu réécris tes URL, je suppose que tu ne voudras pas que l'utilisateur voie la forme expansée "/article.php?idArt=123" dans tes liens. Donc, utilise "/123" ou "/123/".


Dal
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
24 mai 2013 à 13:46
Oui voila j'écris ça en faites dans mes href : https://www.netanswer.fr/?php echo $article['url']; ?>

Donc je dois écrire ça : RewriteRule ^([0-9]+)/?$ article.php?idArt=$1 ?
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
24 mai 2013 à 15:08
ça fonctionne sauf que dans mon htaccess j'ai ça :

RewriteRule ^([0-9]+)/(.*)$ infosProduit.php?id=$1
RewriteRule ^([0-9]+)/(.*)$ article.php?idArt=$1

et quand je clique sur un article, ça m'affiche le produit ... comment faire stp ?
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
24 mai 2013 à 15:09
non, l'expression que je t'ai donnée matche www.monsite.com/1 ou www.monsite.com/1/

si tu veux www.mon-site.com/article/1 ou www.mon-site.com/article/1/ cela serait :

RewriteRule    ^article/([0-9]+)/?$    article.php?idArt=$1   [L]

Dal
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié par [Dal] le 24/05/2013 à 15:27
et si tu veux, tu peux faire tes URL en les agrémentant de texte ayant un sens pour des humains, plus que "1" ou "2", par exemple, comme cela :

http://www.example.com/article/1-partie-ignoree-destinee-au-referencement/
ou
http://www.example.com/article/1-partie-ignoree-destinee-au-referencement

ta règle peut alors être :

RewriteRule    ^article/([0-9]+)[^/]*/?$    article.php?idArt=$1   [L]

- ce qui est numérique immédiatement après "article/" sera utilisé pour être affecté à idArt
- ce qui suivra le numéro sera ignoré et jusqu'au slash éventuel ou la fin de l'URL


Dal
0