Problème d'Url

JBennn Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
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 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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   Statut Membre Dernière intervention   1
 
J'ai test mais je dois mettre quoi dans le href de mon lien du coup ? stp
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
ç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 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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