URL rewriting à partir de .htaccess [Résolu/Fermé]

Signaler
-
 Julieng031 -
Bonjour,

j'ai crée un site il y a peu de temps et j'ai quelques difficultés à mettre en place un mécanisme d'URL rewriting par un fichier .htacess.

Mon site se présente comme ceci :
j'ai une page générique article.php qui prend un paramètre dynamique 'page' qui permet d'afficher la page 'page'.php qui se trouve dans un dossier "dossier_articles".

Par exemple : article.php?page=10

va afficher article.php qui contient un include qui va dans le dossier "dossier_articles" et insère le fichier 10.php.

Ainsi, je cherche à faire une ré-écriture d'URL pour transformer article.php?page=10 en article_10.php.

Le code suivant ne fonctionne pas :
RewriteEngine on
RewriteRule ^article_([0-9]+).php$ article.php?page=$1 [L]


Est-ce qu'il y a une erreur dans ces 2 lignes ? D'autre part, dans quel dossier dois-je placer ce fichier .htaccess (dans le dossier qui contient article.php ou dans "dossier_articles" ?).

Merci d'avance pour votre aide.

2 réponses

bonjour sa vas
Messages postés
18496
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 janvier 2021
4 249
Salut.

Les lignes sont correctes.

Prends juste l'habitude d'échapper les point par un backslashes, le point est un des caractères spéciaux dans les expressions régulières (il signifie "tous les caractères").

Pour le dossier, faut le mettre dans le même que si article_10.php existait.
Si par exemple l'URL est http://example.com/article_10.php , alors ton .htaccess doit être dans http://example.com/
Merci avion-f16 !

J'ai échappé les caractères '.' avec cela :
RewriteEngine on 
RewriteRule ^article_([0-9]+)\.php$ article.php?page=$1 [L] 


Mais cela ne fonctionne toujours pas. A moins que je n'ai pas compris le principe (je débute), je devrai avoir l'adresse dans ma barre d'adresse du navigateur qui change pour celle qui est modifiée. Je fais une erreur ?
Messages postés
18496
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 janvier 2021
4 249
Tu n'as pas compris le principe :)
L'URL rewriting ne fera pas la redirection automatique.
Ta page reste accessible via l'ancienne URL : http://example.com/article.php?page=10
Seulement, si tu demandes http://example.com/article_10.php , ça fera comme un alias vers la vraie URL qui est la première.
Merci beaucoup avion-f16, je n'avais en effet pas compris le principe. Maintenant, j'ai testé avec après ton commentaire et en effet, ça marche.

Juste une question pour ma compréhension. Quand Google va suivre les liens de mon site pour le référencement, comment va-t-il savoir faire le processus inverse : savoir que pour obtenir http://example.com/article.php?page=10, il faut en fait référencer http://example.com/article_10.php ? Il faut que je change tous les liens vers les pages article.php?page=X et que je les remplace par article_X.php ?
Messages postés
18496
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 janvier 2021
4 249
« Il faut que je change tous les liens vers les pages article.php?page=X et que je les remplace par article_X.php ? »

Oui.
Merci encore ! Ca y est, j'ai compris tout le processus. Je réfléchissais à l'envers.