URL rewriting...le début...les bases ??
19 messages
• Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- senos
- Nouveau WRInaute

- Messages: 45
- Inscription: 24 Fév 2003
URL rewriting...le début...les bases ??
Bonjour,
Je souhaite profiter de la remise à plat complète de mon site pour envisager en plus de l'url-rewriting.
Mes questions vont certainement vous paraitre basiques et digne d'un newsbies...mais j'en suis un !!
Mon premier souci : quelle est la strcuture de site la mieux adaptée à l'urlrewrite ??
A savoir :
- Mon site est construit en php et utilise le système des pseudo frames
- J'ai donc une page unique index.php avec une variable page
Jusqu'a présent pour mieux me repérer j'utilisait le système de répertoires différents (chaque répertoire corresondant à un espace donné) ce qui pouvait me donner des adresses du style :
index.php?page=dossier/fichier
ou bien
index.php?page=dossier/fichier&var=1
Apparament ce sytème n'est pas judicieux pour le rewriting !
Donc comment faire ?
Avoir tous les fichiers scripts à la racine du site et utiliser un sytème de codage pour chaque fichier ?
Numéroter chaque page et n'appeller plus que des numéros ? (mais comment se repérer) ?ou bien
Utiliser un dossier pour chaque espace, avec un fichier index dans chaque dossier, mais qui n'appelle que des URL absolues !! Bonjour la maintenance si on a 25 dossiers (25 fichiers index à mettre à jour ??) !!
Et puis le problème des url absolues...comment on teste en local !! C'est l'horreur !!
ou bien
OUBLIER L'URLREWRITING....c'est réservé aux experts !!
J'ai beau réfléchir, mais je ne sais pas trop vers quelle solution m'orienter !
Toutes suggestions et encouragement seront les bienvenus !!
Merci à vous !!
Ben
Je souhaite profiter de la remise à plat complète de mon site pour envisager en plus de l'url-rewriting.
Mes questions vont certainement vous paraitre basiques et digne d'un newsbies...mais j'en suis un !!
Mon premier souci : quelle est la strcuture de site la mieux adaptée à l'urlrewrite ??
A savoir :
- Mon site est construit en php et utilise le système des pseudo frames
- J'ai donc une page unique index.php avec une variable page
Jusqu'a présent pour mieux me repérer j'utilisait le système de répertoires différents (chaque répertoire corresondant à un espace donné) ce qui pouvait me donner des adresses du style :
index.php?page=dossier/fichier
ou bien
index.php?page=dossier/fichier&var=1
Apparament ce sytème n'est pas judicieux pour le rewriting !
Donc comment faire ?
Avoir tous les fichiers scripts à la racine du site et utiliser un sytème de codage pour chaque fichier ?
Numéroter chaque page et n'appeller plus que des numéros ? (mais comment se repérer) ?ou bien
Utiliser un dossier pour chaque espace, avec un fichier index dans chaque dossier, mais qui n'appelle que des URL absolues !! Bonjour la maintenance si on a 25 dossiers (25 fichiers index à mettre à jour ??) !!
Et puis le problème des url absolues...comment on teste en local !! C'est l'horreur !!
ou bien
OUBLIER L'URLREWRITING....c'est réservé aux experts !!
J'ai beau réfléchir, mais je ne sais pas trop vers quelle solution m'orienter !
Toutes suggestions et encouragement seront les bienvenus !!
Merci à vous !!
Ben
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
Quelques réponses et opinions :
La structure la plus importante est la structure apparente du site (celle visible par un navigateur). Ce qui se passe derrière, après réécriture, est essentiellement une question de goût personnel et surtout d'organisation.
Il n'y a pas vraiment de problème pour transformer
en
par exemple. En revanche, ce sera beaucoup plus facile de se retrouver dans les liens si la structure apparente est à peu près logique.
Mais non, mais non. Il faut juste être familier avec l'article WRI sur l'URL Rewriting, bien lire la doc de l'URL Rewriting, quelques exemples de cas concrets et essayer de comprendre les expressions régulières. Et méditer cette citation, en haut de la doc mod_rewrite
En installant un serveur de test en local. Qui va de toute façon être nécessaire pour faire les tests de rewriting, donc...
Un peu encouragé, tout de même?
senos a écrit:quelle est la strcuture de site la mieux adaptée à l'urlrewrite ?
La structure la plus importante est la structure apparente du site (celle visible par un navigateur). Ce qui se passe derrière, après réécriture, est essentiellement une question de goût personnel et surtout d'organisation.
Il n'y a pas vraiment de problème pour transformer
- Code: Tout sélectionner
/dossier/fichier/1.htm
en
- Code: Tout sélectionner
index.php?page=dossier/fichier&var=1
par exemple. En revanche, ce sera beaucoup plus facile de se retrouver dans les liens si la structure apparente est à peu près logique.
senos a écrit:OUBLIER L'URLREWRITING....c'est réservé aux experts
Mais non, mais non. Il faut juste être familier avec l'article WRI sur l'URL Rewriting, bien lire la doc de l'URL Rewriting, quelques exemples de cas concrets et essayer de comprendre les expressions régulières. Et méditer cette citation, en haut de la doc mod_rewrite
`` Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. ''
-- Brian Moore
senos a écrit:Et puis le problème des url absolues...comment on teste en local !! C'est l'horreur !!
En installant un serveur de test en local. Qui va de toute façon être nécessaire pour faire les tests de rewriting, donc...
Un peu encouragé, tout de même?
- senos
- Nouveau WRInaute

- Messages: 45
- Inscription: 24 Fév 2003
nikoshr a écrit:senos a écrit:Et puis le problème des url absolues...comment on teste en local !! C'est l'horreur !!
En installant un serveur de test en local. Qui va de toute façon être nécessaire pour faire les tests de rewriting, donc...
Un peu encouragé, tout de même?
Ben dison pas encore découragé...par contre j'ai déjà un serveur local Apache (easyphp sous windows)...mais comment lui faire lire des url absolues du style :
http://www.monsite.com/dossier/fichier ??
Je l'ai dis je suis un newbies...mais merci pour cette aide !!
Ben
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
Pour ce qui est de l'URL Rewriting en local, il y a plusieurs discussions sur ce sujet : http://www.webrankinfo.com/forums/viewtopic_5832.htm par exemple.
Pour l'hôte (www.monsite.com), deux solutions (au moins):
- soit déclarer une ligne
dans le fichier hosts (chercher ce fichier à partir du répertoire racine de Windows) et déclarer un vhost dans la conf Apache avec un ServerName www.monsite.com
- soit oublier complètement www.monsite.com et déclarer un vhost écoutant sur un port quelconque (8000 par exemple) et avoir des adresses du type h--p://localhost:8000/dossier/fichier . C'est ce que j'utilise et ca fonctionne très bien.
Quelle que soit la solution choisie, je recommande vivement d'avoir les liens dans le source HTML sous la forme
ce qui fonctionne avec les deux solutions et ne demande pas de changements lors du passage en production.
Est-ce plus clair?
Pour l'hôte (www.monsite.com), deux solutions (au moins):
- soit déclarer une ligne
- Code: Tout sélectionner
127.0.0.1 www.monsite.com
dans le fichier hosts (chercher ce fichier à partir du répertoire racine de Windows) et déclarer un vhost dans la conf Apache avec un ServerName www.monsite.com
- soit oublier complètement www.monsite.com et déclarer un vhost écoutant sur un port quelconque (8000 par exemple) et avoir des adresses du type h--p://localhost:8000/dossier/fichier . C'est ce que j'utilise et ca fonctionne très bien.
Quelle que soit la solution choisie, je recommande vivement d'avoir les liens dans le source HTML sous la forme
- Code: Tout sélectionner
<a href='/dossier/fichier'></a>
ce qui fonctionne avec les deux solutions et ne demande pas de changements lors du passage en production.
Est-ce plus clair?
- senos
- Nouveau WRInaute

- Messages: 45
- Inscription: 24 Fév 2003
merci pour ton aide, mais tout cela c'est du chinois pour moi !! Mais je m'y met quand même. J'ai réussi à décoder la 1ère proposition (la 2ème j'ai rien compris)...mais ca marche pas....
Voila ce que j'ai fais (merci à manucorp.com au passage) :
J'ai été dans apache/conf/httpd.conf
j'ai créé mon vhost en tapant ces lignes :
NameVirtualHost monsite.com
<VirtualHost 127.0.0.1>
ServerAdmin webmaster@monsite.com
DocumentRoot \www\monsite (mon site est situé dans le répertoire monsite sous www)
ServerName monsite.com
</VirtualHost>
#
Ensuite j'ai été dans host que j'ai pas trouvé. j'ai trouvé lmhost.sam sous
C:\WINDOWS\system32\drivers\etc\lmhost.sam
j'ai rentré les infos suivantes :
127.0.0.1 monsite.com et je l'ai enregistré sous host.sam
Ensuite j'ai redémarré apache, j'ai tapé dans le navigateur http://monsite.com
et ben rien "impossible de trouver la page", j'ai essayé d'enregistrer sous lmhost.sam...pas plus.
J'ai essayé de suivre tes indications et celle de manucorp.com...
mais je dois ps être bon à grand chose !
ou bien il me manque une info !!
Merci pour ton aide !!
Pour info j'utilise easyphp 1.6.0.0 et windows xp home
Ben
PS : Comment le navigateur fait-il la différence entre l'url virtuelle et la vrai si elles sont toutes les 2 identiques
Voila ce que j'ai fais (merci à manucorp.com au passage) :
J'ai été dans apache/conf/httpd.conf
j'ai créé mon vhost en tapant ces lignes :
NameVirtualHost monsite.com
<VirtualHost 127.0.0.1>
ServerAdmin webmaster@monsite.com
DocumentRoot \www\monsite (mon site est situé dans le répertoire monsite sous www)
ServerName monsite.com
</VirtualHost>
#
Ensuite j'ai été dans host que j'ai pas trouvé. j'ai trouvé lmhost.sam sous
C:\WINDOWS\system32\drivers\etc\lmhost.sam
j'ai rentré les infos suivantes :
127.0.0.1 monsite.com et je l'ai enregistré sous host.sam
Ensuite j'ai redémarré apache, j'ai tapé dans le navigateur http://monsite.com
et ben rien "impossible de trouver la page", j'ai essayé d'enregistrer sous lmhost.sam...pas plus.
J'ai essayé de suivre tes indications et celle de manucorp.com...
mais je dois ps être bon à grand chose !
ou bien il me manque une info !!
Merci pour ton aide !!
Pour info j'utilise easyphp 1.6.0.0 et windows xp home
Ben
PS : Comment le navigateur fait-il la différence entre l'url virtuelle et la vrai si elles sont toutes les 2 identiques
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
Alors:
- le fichier hosts n'a pas d'extension, c'est peut-être pour ca qu'il n'apparaît pas dans la recherche. Normalement, il se trouve dans le même répertoire que lmhosts.sam. Un bout d'explication sur le fichier hosts
- la directive NameVirtualHost indique sur quelle adresse IP les requêtes d'hôte virtuel doivent arriver. Pour l'instant, la mettre à * (toutes adresses) ou la commenter (mettre # devant)
- le directive DocumentRoot indique à partir de quel répertoire les URL vont être résolues par défaut. Normalement, ce sont des chemins absolus dans le système de fichier (pour EasyPHP, c'est peut-être différent, mais je ne connais pas). Sur Windows, un DocumentRoot pointant sur C:\apache\www s'écrirait c:/apache/www
Une conf qui fonctionne chez moi, en sus de la déclaration dans le hosts (désolé, mais là il va falloir que tu le trouves, a priori dans C:\WINDOWS\SYSTEM32\DRIVERS\ETC , ou alors le créer, avec uniquement la ligne ci-dessus dans ce répertoire)
Redémarrage d'Apache, et normalement ca marche avec un h--p://monsite.com/test.htm
Ne pas oublier d'appeler un fichier test.htm dans le répertoire de base
.
Si monsite.com est un domaine existant, ca pose un problème, le fichier hosts prenant la main sur le DNS. Il suffit d'utiliser autre chose comme nom, par exemple test.monsite.com et tout le monde est content.
- le fichier hosts n'a pas d'extension, c'est peut-être pour ca qu'il n'apparaît pas dans la recherche. Normalement, il se trouve dans le même répertoire que lmhosts.sam. Un bout d'explication sur le fichier hosts
- la directive NameVirtualHost indique sur quelle adresse IP les requêtes d'hôte virtuel doivent arriver. Pour l'instant, la mettre à * (toutes adresses) ou la commenter (mettre # devant)
- le directive DocumentRoot indique à partir de quel répertoire les URL vont être résolues par défaut. Normalement, ce sont des chemins absolus dans le système de fichier (pour EasyPHP, c'est peut-être différent, mais je ne connais pas). Sur Windows, un DocumentRoot pointant sur C:\apache\www s'écrirait c:/apache/www
Une conf qui fonctionne chez moi, en sus de la déclaration dans le hosts (désolé, mais là il va falloir que tu le trouves, a priori dans C:\WINDOWS\SYSTEM32\DRIVERS\ETC , ou alors le créer, avec uniquement la ligne ci-dessus dans ce répertoire)
- Code: Tout sélectionner
#NameVirtualHost *
<VirtualHost monsite.com>
ServerName monsite.com
DocumentRoot d:/work/tmp
</VirtualHost>
Redémarrage d'Apache, et normalement ca marche avec un h--p://monsite.com/test.htm
Ne pas oublier d'appeler un fichier test.htm dans le répertoire de base
Si monsite.com est un domaine existant, ca pose un problème, le fichier hosts prenant la main sur le DNS. Il suffit d'utiliser autre chose comme nom, par exemple test.monsite.com et tout le monde est content.
- senos
- Nouveau WRInaute

- Messages: 45
- Inscription: 24 Fév 2003
Bon on avance et merci encore pour ton aide....mais ca marche toujours pas :
Voila ce que j'ai tapé :
<VirtualHost monsite.com>
ServerName monsite.com
DocumentRoot /www/monsite
</VirtualHost>
J'ai fais un fichier host (sans extension) avec une ligne
127.0.0.1 monsite.com
et ca marche pas !!
Je pense que le probème vient de la directive root
si je met :
C:/Program Files/EasyPHP/www
J'ai un message d'erreur :
...
DocumentRoot takes one argument, Root directory of the document tree !
sachant que plus haut dans le fichier httpd.conf j'ai cette directive :
# First, we configure the "default" to be a very restrictive set of
# permissions.
#
<Directory />
Options FollowSymLinks Indexes
AllowOverride All
</Directory>
#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/Program Files/EasyPHP/www">
Et d'après moi, mais je suis pas un spécialiste, le problème doit venir de là , mais je sais pas comment faire pour le contourner.
En tous les cas c'est très sympa de me donner un peu de ton temps !! Grand merci
Ben
Voila ce que j'ai tapé :
<VirtualHost monsite.com>
ServerName monsite.com
DocumentRoot /www/monsite
</VirtualHost>
J'ai fais un fichier host (sans extension) avec une ligne
127.0.0.1 monsite.com
et ca marche pas !!
Je pense que le probème vient de la directive root
si je met :
C:/Program Files/EasyPHP/www
J'ai un message d'erreur :
...
DocumentRoot takes one argument, Root directory of the document tree !
sachant que plus haut dans le fichier httpd.conf j'ai cette directive :
# First, we configure the "default" to be a very restrictive set of
# permissions.
#
<Directory />
Options FollowSymLinks Indexes
AllowOverride All
</Directory>
#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/Program Files/EasyPHP/www">
Et d'après moi, mais je suis pas un spécialiste, le problème doit venir de là , mais je sais pas comment faire pour le contourner.
En tous les cas c'est très sympa de me donner un peu de ton temps !! Grand merci
Ben
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
Ca semble effectivement venir du DocumentRoot, et je dirais à cause de l'espace dans le chemin. Ca marchera peut-être mieux en le mettant avec des guillemets
ou alors, pour tester que ca vient bien de là , créer un répertoire tmp à la racine de C et mettre
Eventuellement, ca pourrait être intéressant de démarrer Apache en ligne de commande, pour voir s'il refuse une ou des directives. Pour ca, lancer une fenêtre DOS (Menu Démarrer/Exécuter, taper command et Entrée), se déplacer jusqu'au répertoire bin d'Apache, puis Apache.exe -k restart
- Code: Tout sélectionner
DocumentRoot "C:/Program Files/EasyPHP/www"
ou alors, pour tester que ca vient bien de là , créer un répertoire tmp à la racine de C et mettre
- Code: Tout sélectionner
DocumentRoot c:/tmp
Eventuellement, ca pourrait être intéressant de démarrer Apache en ligne de commande, pour voir s'il refuse une ou des directives. Pour ca, lancer une fenêtre DOS (Menu Démarrer/Exécuter, taper command et Entrée), se déplacer jusqu'au répertoire bin d'Apache, puis Apache.exe -k restart
- senos
- Nouveau WRInaute

- Messages: 45
- Inscription: 24 Fév 2003
Bon j'ai fais les test :
avec les guillemets il me le prend !!
en ligne de commande j'obtiens un message d'erreur :
Cannot resolve host name monsite.com ---ignoring !
Cannot read apache PID file c:program files/easyphp/apache/logs/httpd.pid
Alors là c'est plus du chinois mais de l'Inuit....je vais finir par devenir polyglotte
Ben
avec les guillemets il me le prend !!
en ligne de commande j'obtiens un message d'erreur :
Cannot resolve host name monsite.com ---ignoring !
Cannot read apache PID file c:program files/easyphp/apache/logs/httpd.pid
Alors là c'est plus du chinois mais de l'Inuit....je vais finir par devenir polyglotte
Ben
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
Pour ca, je dirais que quelque part tu as une ligne qui parle de c:program files/easyphp/ alors que ca devrait être c:/program files/easyphp/
Genre ServerRoot. Non? Ou que le répertoire logs en question n'existe pas (improbable, mais bon)
Genre ServerRoot. Non? Ou que le répertoire logs en question n'existe pas (improbable, mais bon)
- senos
- Nouveau WRInaute

- Messages: 45
- Inscription: 24 Fév 2003
Non, j'ai tout vérifié :
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
ServerRoot "C:/Program Files/EasyPHP/apache"
Par contre si j'ai bien un répertoire log...j'ai pas de fichier httpd.pid !!
C'est quand même pas donné au commun des mortels !! lol
Ben
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
ServerRoot "C:/Program Files/EasyPHP/apache"
Par contre si j'ai bien un répertoire log...j'ai pas de fichier httpd.pid !!
C'est quand même pas donné au commun des mortels !! lol
Ben
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
Et avec
Mais là , on n'en est qu'à la conf Apache, pas encore à l'URL rewriting
- Code: Tout sélectionner
apache -k start
senos a écrit:C'est quand même pas donné au commun des mortels !! lol
Mais là , on n'en est qu'à la conf Apache, pas encore à l'URL rewriting
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 :
- Url rewriting: les bases chez OVH
- [resolu] [url rewriting] un débutant qui peine... au début
- Début avec url rewrtiting... et probleme.
- URL Rewriting : règle de rewriting qui change selon la cat ?
- Gestion de la page par défaut, multingue, url Rewriting, url friendly
- URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
- url rewriting: modification d'un dossier dans une url + l'extension
- Changement url rewriting, anciennes url dans le resultat de la recherche
- nettoyer des URL de la base Google apres url rewriting
- Supprimer de google mes anciennes URL (après URL rewriting)
Consultez la description détaillée des produits ou services de Google suivants : Google AdWords API
- Analyse des backlinks
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées. - Recherche de citations d'un site en texte brut
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
