Page 1 sur 2

URL Rewritting

Posté : 18 juil. 2022, 22:20
par Malcolm06
Bonsoir à tous,

J'ai un petit problème d'url rewriting.

J'ai une page article.php?id=X
Je souhaite transformer l'url en : article/X

J'ai déjà réalisé :

Code : Tout sélectionner

RewriteEngine On RewriteRule ^article/([0-9]+)$ article.php?id=$1 [L]
Cependant, quand je vais sur le page https://X.fr/article/5 et que je recherche l'id avec :
$id = $_GET['id'];
echo var_dump($id);
Cela me renvoie la valeur NULL.
Par contre, mon code CSS fonctionne bien lorsque j'appelle ma feuille :
<link rel="stylesheet" type="text/css" href="../css/w3.css">
Ai-je oublié quelque chose ou fait une mauvaise manipulation.

Merci par avance,
bonne soirée :-D

Re: URL Rewritting

Posté : 19 juil. 2022, 20:35
par Dsynx
voila ce que moi j'utilise

Code : Tout sélectionner

<IfModule mod_rewrite.c> RewriteEngine On # Do not enable rewriting for files or directories that exist RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /Eukaruon/index.php?page=$1 [L] </IfModule>

Re: URL Rewritting

Posté : 20 juil. 2022, 08:28
par Malcolm06
voila ce que moi j'utilise

Code : Tout sélectionner

<IfModule mod_rewrite.c> RewriteEngine On # Do not enable rewriting for files or directories that exist RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /Eukaruon/index.php?page=$1 [L] </IfModule>
Merci, je vais essayer ce soir !

Re: URL Rewritting

Posté : 20 juil. 2022, 10:55
par @rthur
Un petit outil pratique pour tester ses htaccess :
https://htaccess.madewithlove.com/

Re: URL Rewritting

Posté : 22 juil. 2022, 09:31
par Malcolm06
Un petit outil pratique pour tester ses htaccess :
https://htaccess.madewithlove.com/
J'ai pas encore eu le temps de tester, mais merci, je vais tester également cet outil !!

\:D/ \:D/

Re: URL Rewritting

Posté : 22 juil. 2022, 12:58
par Malcolm06
J'ai testé l'outil et m'a indiqué que cela fonctionne lorsque j'utilise :

http://X.fr/article/1
1
RewriteEngine On
RewriteEngine was now turned on for the document.

2
RewriteRule ^article/([0-9]+)$ article.php?id=$1 [L]
The new url is http://X.fr/article.php?id=1
The tests are stopped because of the L in your RewriteRule options.
Cependant, sur ma page http://X.fr/article/1,
$id = $_GET['id'];
echo var_dump($id);
cela me renvoie : string(0) ""

je n'ai donc pas d'id et donc pas de contenu.

Je ne sais vraiment pas ou ça coince sur les vidéos que j'ai pu regarder, ils font la même chose et ils ont un id. :-? :-?

Re: URL Rewritting

Posté : 22 juil. 2022, 17:33
par @rthur
var_dump() n'a pas besoin d'echo devant.

Si tu fais un var_dump($_GET) tu obtiens quoi ?

Re: URL Rewritting

Posté : 24 juil. 2022, 18:17
par rononedex
Voilà ce que moi je ferai

Code : Tout sélectionner

#-------------------------------------------------- # Répertoire : www #-------------------------------------------------- # Le serveur doit suivre les liens symboliques : Options +FollowSymlinks AddDefaultCharset UTF-8 # Activation du module de réécriture d'URL : <IfModule mod_rewrite.c> RewriteEngine on </IfModule> #-------------------------------------------------- # Règles de réécriture d'URL : #-------------------------------------------------- RewriteBase / DirectoryIndex index.php?page=home RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f ErrorDocument 404 /error #------------------------------------------------- # Règles de base page id slug pagination #------------------------------------------------- RewriteRule ^([a-zA-Z0-9\-]+)/?$ index.php?page=$1 [NC,L] #--------------------------------------------- # Partie post etc... #--------------------------------------------- #post RewriteRule ^post/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ index.php?page=post&id=$1&slug=$2 [NC,L]
et les liens ça donnerai ça

Code : Tout sélectionner

<a href="post/<?= $works->id ?>/<?= $works->slug ?>">post</a>

Re: URL Rewritting

Posté : 25 juil. 2022, 09:47
par Malcolm06
var_dump() n'a pas besoin d'echo devant.

Si tu fais un var_dump($_GET) tu obtiens quoi ?
Désolé du temps de réponse,

Merci de l'info pour le echo ! :D

Quand je met var_dump($_GET);
Cela me renvoie : array(0) { }

Re: URL Rewritting

Posté : 25 juil. 2022, 15:18
par or 1
et https://www.php.net/manual/fr/function.phpinfo.php en ce qui concerne les variables $_SERVER ?

Re: URL Rewritting

Posté : 25 juil. 2022, 21:08
par Malcolm06
et https://www.php.net/manual/fr/function.phpinfo.php en ce qui concerne les variables $_SERVER ?
Je constate bien que le id n'est pas retrouvé lorsque j'utilise https://X.fr/article/5

Quelles informations dois-je regarder ? je ne sais vraiment pas quoi regarder dans ces innombrables variables.

Merci beaucoup,

Re: URL Rewritting

Posté : 25 juil. 2022, 21:56
par or 1
'QUERY_STRING'
'REQUEST_URI'
'PHP_SELF'
'SCRIPT_FILENAME'

Re: URL Rewritting

Posté : 26 juil. 2022, 08:18
par Malcolm06
'QUERY_STRING'
'REQUEST_URI'
'PHP_SELF'
'SCRIPT_FILENAME'
Merci de votre réponse,

Voici les résultats :

QUERY_STRING : no value
REQUEST_URI : /article/5
SCRIPT_NAME : /article.php
PHP_SELF : /article.php

Re: URL Rewritting

Posté : 26 juil. 2022, 10:00
par or 1
avec
RewriteRule ^toto/([0-9]+)$ article.php?id=$1 [L]
et
http://X.fr/toto/1
la page s'affiche toujours ?

Re: URL Rewritting

Posté : 26 juil. 2022, 10:19
par Malcolm06
avec
RewriteRule ^toto/([0-9]+)$ article.php?id=$1 [L]
et
http://X.fr/toto/1
la page s'affiche toujours ?
La page https://X.fr/toto/1 me renvoie une erreur 404 lors du teste
La page https://X.fr/article/1 s'affiche, mais toujours sans les informations de la base de données : $_GET['id'] vide