rewriting sous forme /categorie_cafetiere.html
19 messages • Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- demipoulpe
- Nouveau WRInaute
- Messages: 16
- Inscription: Ven Juil 23, 2004 11:09
rewriting sous forme /categorie_cafetiere.html
Bonjour ,
j'aimerais savoir si il est possibe de passer d'une regle de type :
en quelque chose du genre /categorie_cafetiere.html sachant bein sur qu'il existe dasn ma bdd une correspondance entre le numero cpath et le titre de la categorie .....
pour cela j'utilise
avec un fichier categories.txt situé dasn le dossier conf et qui contient :
aspirateur 1
televiseur 2
hifi 3
mais cela ne fonctionne aps et je tombe sur une 404 si je tape l url :
une idee ?
j'aimerais savoir si il est possibe de passer d'une regle de type :
- Code: Tout sélectionner
RewriteRule ^categorie_([1-9][0-9]*)\.html$ index.php?cPath=$1 [L]
en quelque chose du genre /categorie_cafetiere.html sachant bein sur qu'il existe dasn ma bdd une correspondance entre le numero cpath et le titre de la categorie .....
pour cela j'utilise
- Code: Tout sélectionner
RewriteMap categories txt:categories.txt
RewriteRule ^(.*)$ index.php?cPath=${categories:$1|0}
avec un fichier categories.txt situé dasn le dossier conf et qui contient :
aspirateur 1
televiseur 2
hifi 3
mais cela ne fonctionne aps et je tombe sur une 404 si je tape l url :
- Code: Tout sélectionner
http://localhost/test/categorie3
une idee ?
Je sais pas comment faire exactement ce que tu veut mais sinon tu peut essayer qqchose dans ce genre :
Ca te ferait des liens du style categorie9_cafetiere.html
Tout en sachant que le mot après _ ne sert a rien mais tu peut facilement le récupérer dans ta base de donnée en fonction de l'id de la catégorie
- Code: Tout sélectionner
RewriteRule ^categorie([0-9])_([a-z]+)\.html$ index.php?cPath=$1 [L]
Ca te ferait des liens du style categorie9_cafetiere.html
Tout en sachant que le mot après _ ne sert a rien mais tu peut facilement le récupérer dans ta base de donnée en fonction de l'id de la catégorie
Si on parle bien d'un fichier de conf, probablement un problème de chemins par rapport au DocumentRoot
en supposant qu'index.php se trouve à la racine.
- Code: Tout sélectionner
RewriteRule ^/test/(.*)$ /index.php?cPath=${categories:$1|0}
en supposant qu'index.php se trouve à la racine.
- demipoulpe
- Nouveau WRInaute
- Messages: 16
- Inscription: Ven Juil 23, 2004 11:09
je pense aussi que c'est un proeleme de chemin ..... j'ai aussi ctrl+c le fichier categorie dans mon repertoire test
mais j obtient tjs une 404 ......
voici l'article original dou je tire mon code :*
- Code: Tout sélectionner
RewriteMap categories txt:/test/categories.txt
RewriteRule ^/test/(.*)$ /test/index.php?cPath=${categories:$1|tutu}
mais j obtient tjs une 404 ......
voici l'article original dou je tire mon code :*
For Advanced Users
I mentioned user-friendliness in the introduction, and haven't dealt with it. First, let's imagine we're having a huge download site that has the downloadable software separated into categories, each with a unique id (which is used in the SQL SELECTs). We use links like open.php?categoryid=23487678 to display the contents of a category.
To ensure that our URLs were easily memorized (eg. http://www.downloadsite.com/Nettools/Messengers) we could use:
RewriteRule ^/NetTools$ /test.php?target=3
RewriteRule ^/NetTools/Messengers$ /test.php?target=34
assuming the ID is 3 for the NetTools category and 34 for Messengers subcategory.
But our site is huge, as I've mentioned - who wants to hunt down all the IDs from the database, and then edit the config file by hand? No-one! Instead, we can use the mapping feature of mod_rewrite. Map allows us to provide a replacement-table - stored in a single text file -- within a hash file (for fast lookups), or even served through an external program!
For better performance I'd generate a single text file using PHP, which contains the following:
NetTools 3
NetTools/Messengers 34
.
.
.
and so on.
The httpd.conf file would contain:
RewriteMap categories txt:/path/to/file/categoryids.txt
RewriteRule ^(.*)$ open.php?categoryid=${categories:$1|0}
These lines tell mod_rewrite to read the categoryids.txt file upon Apache startup, and provide the ID for the URL for open.php. The |0 means that categoryid will be 0 if there's no matching key in the textfile.
You can also choose to serve the IDs on-the-fly via a script or other executable code. The program is started by Apache on server startup, and runs until shutdown. The program must have buffered I/O disabled, read from the stdin, and write results to stdout -- it's that simple!
With RewriteMap you can do a lot more, including:
* load balancing through servers (using rnd:),
* creation of a Webcluster that has an homogenous URL layout,
* redirection to mirror sites without modifying your Web application,
* denial of user access based on a hostlist,
and so on.
Indique le chemin complet pour le fichier de RewriteMap, par exemple /home/www/test/categories.txt ou c:/apache/www/test/categories.txt sur Windows, ca simplifiera le problème. Là, en l'état, ca pointe vers un fichier /test/categories.txt à la racine du système. Les logs d'Apache devraient te donner les erreurs éventuelles sur le repérage du fichier, après redémarrage bien entendu.
Ensuite, pour éviter les 404, quelque chose comme ca :
Ensuite, pour éviter les 404, quelque chose comme ca :
- Code: Tout sélectionner
RewriteCond ${categories:$1|NOT-FOUND} !=NOT-FOUND
RewriteRule ^/test/(.*)$ /test/index.php?cPath=${categories:$1} [L]
RewriteRule ^/test/(.*)$ /test/index.php [L]
Dernière édition par nikoshr le Ven Juil 23, 2004 14:17, édité 1 fois.
Merci pour l'article, je connaissais pas cette méthode
Sinon pour le chemin à indiquer, peut-être qu'il faut donner le chemin depuis le /home/site/www etc. ?
pour moi c'est par exemple le cas pour les fichiers de password (AuthUserFile)
Sinon pour le chemin à indiquer, peut-être qu'il faut donner le chemin depuis le /home/site/www etc. ?
pour moi c'est par exemple le cas pour les fichiers de password (AuthUserFile)
- demipoulpe
- Nouveau WRInaute
- Messages: 16
- Inscription: Ven Juil 23, 2004 11:09
rhaaaaaaaaaa ca me rend folle , tjs une belle 404 avec
par contre la structure du fichier categorie.txt m intrigue ... pas besoin de delimiteur ???
- Code: Tout sélectionner
RewriteMap categories txt:/home/www/test/categories.txt
RewriteRule ^/test/(.*)$ /test/index.php?cPath=${categories:$1|tutu}
par contre la structure du fichier categorie.txt m intrigue ... pas besoin de delimiteur ???
Apache ne dit rien quand tu le redémarres? Rien dans les logs?
Pour voir ce qu'il se passe, tu peux activer le log du rewriting
Les maps par fichiers texte sont sous forme de paires clé valeur, une par ligne.
Pour info, la doc du RewriteMap
Pour voir ce qu'il se passe, tu peux activer le log du rewriting
- Code: Tout sélectionner
RewriteEngine On
RewriteLogLevel 9
RewriteLog /home/www/test/rewrite.log
Les maps par fichiers texte sont sous forme de paires clé valeur, une par ligne.
Pour info, la doc du RewriteMap
- demipoulpe
- Nouveau WRInaute
- Messages: 16
- Inscription: Ven Juil 23, 2004 11:09
un simple
[Fri Jul 23 15:46:57 2004] [error] [client 127.0.0.1] File does not exist: c:/program files/easyphp1-7/www/test/hifi
peu parlant
vous le dites si vous en avez marre
[Fri Jul 23 15:46:57 2004] [error] [client 127.0.0.1] File does not exist: c:/program files/easyphp1-7/www/test/hifi
peu parlant
vous le dites si vous en avez marre
Ah. Le problème vient assez certainement du fait que les chemins utilisés jusque là sont des chemins Unix alors qu'apparemment tu es sur Windows.
Reprenons. Normalement, avec quelque chose comme ca dans ton fichier de conf, ca devrait fonctionner, plus ou moins :
Redémarrage d'Apache, test, joie dans les coeurs?
Reprenons. Normalement, avec quelque chose comme ca dans ton fichier de conf, ca devrait fonctionner, plus ou moins :
- Code: Tout sélectionner
RewriteEngine On
RewriteMap categories txt:c:/program files/easyphp1-7/www/test/categories.txt
RewriteRule ^/test/(.*)$ /test/index.php?cPath=${categories:$1|tutu}
Redémarrage d'Apache, test, joie dans les coeurs?
- demipoulpe
- Nouveau WRInaute
- Messages: 16
- Inscription: Ven Juil 23, 2004 11:09
pas tout a fait ..... il n'appreci pas la syntaxe
- Code: Tout sélectionner
c:/program files/easyphp1-7/www/test/categories.txt
Dernière édition par demipoulpe le Ven Juil 23, 2004 15:26, édité 1 fois.
Alors
- Code: Tout sélectionner
RewriteMap categories txt:"c:/program files/easyphp1-7/www/test/categories.txt"
- demipoulpe
- Nouveau WRInaute
- Messages: 16
- Inscription: Ven Juil 23, 2004 11:09
un week end et un litre de café ne mon pas sortie de cet inextricable probleme
quelqun a t il deja utilisé avec succes les RewriteMap
quelqun a t il deja utilisé avec succes les RewriteMap
19 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- l'URL Rewriting expliqué aux débutants
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Tutoriel URL Rewriting
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- L'URL Rewriting expliqué aux débutants
- Référencement : le problème des sessions des pages PHP
- Début du Full Crawl
- Séminaire URL Rewriting et sites dynamiques
- Le référencement de pages PHP
- forme et pertinance de l'url rewriting
- Changement de forme d'url rewriting est-ce judicieux?
- Mise en forme de l'url rewriting pour un meilleur referencem
- Url rewriting d'une catégorie
- rewriting avec une valeur différente par catégorie
- Rewriting sous forme de dossier avec dossier identique
- Préférer /categorie/ ou /categorie/index ?
- [Catégorie] Changement de catégorie...
- MIse en forme bloc
- mise en forme feedparser
- Mise en forme Adsense
- Plate forme blog
- Nouvelle forme d'adWords
- Pompos en pleine forme
- Google en forme ?
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum