L'URL Rewriting

Par Innah, il y a 15 ans


Bonsoir,

J'ai suivi votre tutoriel sur l'URL Rewriting et j'aurais aimé l'utiliser sur mon projet.

Voici ma structure actuelle :

[admin]
[design]

Les sources que j'ai donc pu récupérer me permettent donc d'effectuer la mise en place des pages qui se trouvent dans web... Seulement voilà, j'ai besoin de faire passer des id en $_GET de :

Du j'ai tenté de faire RewriteRule ^new/([0-9]+)$ inscription/new.php?id=$1 [QSA,L] en donnant comme url dans ma page web/inscription/index.php : new/1 ou new/2

Bien entendu, cela ne fonctionne pas.

Comment puis-je réussir à effectuer ces opérations ?

Merci d'avance :)

8 réponses

PhiSyX, il y a 15 ans

Et si t'enlève le ^ ?

Innah, il y a 15 ans

Malheureusement cela ne change rien :(

PhiSyX, il y a 15 ans

Bizarre, normanement, ça devrait rediriger sans aucun problème.
Peux-tu nous montrer tout ton .htaccess plz ? (Seulement les Rewrite*)

Innah, il y a 15 ans

Biensûr, le voici :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?p=$1 [QSA,L]
RewriteRule new/([0-9]+)$ inscription/new.php?id=$1 [QSA,L]

Et voici mon index.php qui se trouve à la racine avec ce .htaccess :

<?php
define("WEBROOT","/test/");
if(!isset($_GET"p"])){ $_GET"p"]="index"; }
if(!file_exists("web/".$_GET"p"].".php")){ $_GET"p"]="404"; }
ob_start();
include "web/".$_GET"p"].".php";
$content = ob_get_contents();
ob_end_clean();
include "design/template.php";
?>

Et voici le fichier avec lequel j'essaie de faire ces fameux liens qui se trouve donc dans www/test/web/inscription/new.php

<a href="<?php echo WEBROOT; ?>inscription/new/1" class="cufon">Europe</a>
<br />
<a href="<?php echo WEBROOT; ?>inscription/new/2" class="cufon">Amérique</a>
PhiSyX, il y a 15 ans

Ha, je vois, c'est la redirection qui est trop forte.
Essaye ceci :
.htaccess :

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^new/([0-9]+)$ inscription/new.php?id=$1 [QSA,L]
RewriteRule ^([a-zA-Z0-9\/]+)$ index.php?p=$1 [QSA,L]
Innah, il y a 15 ans

Malheureusement non ça ne passe toujours pas...

Bon, pas grave. Je vais faire sans... Je reviendrai sur cette URL Rewritting quand j'aurais terminé mon site... Je perds trop de temps sur un truc stupide là...

Merci quand même pour ton aide :)

Grafikart, il y a 15 ans

Si tu es en local n'hésite pas à voir les log apache pour avoir plus d'idée sur l'erreur :)

PaulB319, il y a 14 ans

Essais donc ceci :

RewriteEngine on
RewriteBase /test/
RewriteRule $new/([0-9]+)^ inscription/new.php?id=$1 [QSA,L]