Aller au contenu

URL rewriting


hska

Sujets conseillés

bonsoir à vous tous,

je suis entrain de travailler usr le URL rewriting pour mon site, mais ça ne marche pas.

Est ce que vous voulez bien jeter un coup d'oeil sur mon script. Merci

URL d'origine:

-http://localhost/paroisse/sauvegarde/artic...ticle.php?ID=41

URL reécrit:

-http://localhost/paroisse/sauvegarde/article/article-41.html

le code dans le fichier.htaccess

RewriteEngine on

RewriteRule ^article-([0-9]+)\.html$ sauvegarde/article/article.php?ID=$1 [L]

Monsite s'appelle "paroisse". Le dossier "paroisse" se trouve dans le répertoire "www" de EasyPHP 1.7

J'ai déjà configuré le fichier httpd.conf de Apache. le module mod_rewrite est activé.

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

RewriteEngine on

RewriteRule ^article-([0-9]+)\.html$ sauvegarde/article/article.php?ID=$1 [L]

Bonjour hska !

Pour obtenir ce que tu donnes en exemple, il faut simplifier la règle...

URL d'origine:

-http://localhost/paroisse/sauvegarde/artic...ticle.php?ID=41

URL reécrit:

-http://localhost/paroisse/sauvegarde/article/article-41.html

Les répertoires restent les mêmes alors que la règle que tu utilises crée des répertoires virtuels.

Mets ceci dans le fichier .htaccess

RewriteEngine on
RewriteRule article-([0-9]+)\.html article.php?ID=$1 [L]

et cela devrait marcher ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Dans quel répertoire se trouve le fichier .htaccess ? Et l'as-tu bien envoyé en mode "ASCII" ? Le mode "binaire" ne convertit pas correctement les fins de ligne (CR et LF)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Le fichier .htaccess se trouve dans le répertoire "PAROISSE"

Comment tu fait pour envoyer le fichier .htaccess en mode "ASCII"?

Est ce que tu veux bien 'expliqué.

Quant à la création mon fichier .htaccess, j'ouvre le bloc note et je colle ces 2 lignes :

RewriteEngine on

RewriteRule article-([0-9]+)\.html article.php?ID=$1 [L]

Et je l'enregistre sous le nom .htacess

Merci de ton aide

Lien vers le commentaire
Partager sur d’autres sites

Le problème, s'il s'agit d'un fichier créé sous le bloc-note, est que le fichier est au format windows (lignes terminées par carriage-return+linefeed)

Alors que sous linux, il ne faut que le linefeed ;)

Le mode ASCII se paramètre dans ton client ftp, menus options ou configuration du site.

Quand tu dis "ca ne marche pas" tu veux dire quoi ? Une erreur ? Une page 404 ? Une erreur 500 (serveur) ?

Dan

Lien vers le commentaire
Partager sur d’autres sites

Chers amis,

J'ai réussit enfin de faire afficher ma page en tapant dans le navigateur :

-http://localhost/paroisse/sauvegarde/article/article-41.html

A condition de placer le fichier .HTACCESS dans le répertoire "ARTICLE"

le fichier .htaccess contient les code suivant :

RewriteEngine on

RewriteRule ^article-([0-9]+)\.html$ article.php?ID=$1 [L]

----------------------------------------------

J'ai tout testé en plaçant le fihiers .HTACCESS à la RACINE DU SITE (càd dans le répertoire "PAROISSE" placé dans "WWW" ) avec les différents codes suivants. mais ça ne marche pas: "erreur: fichier introuvable"

- RewriteEngine on

RewriteRule ^article-([0-9]+)\.html$ -http://localhost/paroisse/sauvegarde/artic....php?ID=$1 [L]

- RewriteRule ^article-([0-9]+)\.html$ paroisse/sauvegarde/article/article.php?ID=$1 [L]

- RewriteRule ^article-([0-9]+)\.html$ sauvegarde/article/article.php?ID=$1 [L]

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

- RewriteRule ^article-([0-9]+)\.html$ article.php?ID=$1 [L]

------------------------------------------------------------------------------

Du coup, je trouve que cette méthode est un peu lourd car si j'ai 10 répertoires différents:

-http://localhost/paroisse/sauvegarde/artic...DUITS.php?ID=20

-http://localhost/paroisse/sauvegarde/artic...GORIE.php?ID=10

-

- ----------ainsi de suite.

Je dois alors créer 10 fichiers .HTACCESS différents et les placer dans ces 10 répertoires différents pour que ça marche?

Je pense qu'il doit y avoir une solutions plus simple non?

Comment faîtes vous?

Merci pour toutes vos contributions.

HSKA

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Dans tes règles:

RewriteRule ^article-([0-9]+)\.html$ http://localhost/paroisse/sauvegarde/artic....php?ID=$1 [L] 
RewriteRule ^article-([0-9]+)\.html$ paroisse/sauvegarde/article/article.php?ID=$1 [L]
RewriteRule ^article-([0-9]+)\.html$ sauvegarde/article/article.php?ID=$1 [L]
RewriteRule ^article-([0-9]+)\.html$ article/article.php?ID=$1 [L]
RewriteRule ^article-([0-9]+)\.html$ article.php?ID=$1 [L]

l'url transmise au moteur de réécriture ne commence pas par "article" si le fichier se trouve dans un répertoire... c'est donc le ^ en début de ligne qui gêne ;)

Mais il est logique de mettre le fichier .htaccess dans le répertoire qui contient les URLs à réécrire, sinon tous les fichiers demandés sur le site passeront par ces règles, en vain !

Lien vers le commentaire
Partager sur d’autres sites

Une règle qui devrait fonctionner en local et en remote est:

RewriteRule (.*)article-([0-9]+)\.html  $1article.php?ID=$2

Elle aurait au moins l'avantage de garder le même répertoire... et pourrait de ce fait être placée dans le .htaccess de la racine du site en traitant les répertoires automatiquement.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...