PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Hébergement serveur > fr.comp.info.serveurs > Mod rewrite pour un répertoire
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
fr.comp.info.serveurs Administration de serveurs WWW.

Mod rewrite pour un répertoire

Réponse
 
LinkBack Outils de la discussion
Vieux 01/08/2005, 10h17   #1
Iulius
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Mod rewrite pour un répertoire

Bonjour,

Je rencontre un petit problème pour effectuer une
redirection d'URL avec Apache.

Je souhaite faire :

http://www.monsite.com/rep1/rep2/page.htm
=>
http://www.monsite.com/page.php?rep1/rep2/page

et

http://www.monsite.com/rep1/rep2/
=>
http://www.monsite.com/page.php?rep1/rep2/index



J'utilise pour cela, dans le fichier << .htaccess >> :

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^www/(.*)\.htm$ /page.php?$1 [L]
RewriteRule ^www/(.*)/$ /page.php?$1/index [L]
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^www/(.*)$ /page.php?$1/index [L]




J'ai cependant une petite question :

Pourquoi un simple

RewriteRule ^www/(.*) /page.php?$1 [L]

ne marche-t-il pas pour envoyer directement tous les paramètres
à ma page PHP qui se chargerait ensuite de traiter l'argument ?
Cela ne passe en effet pas (hébergement mutualisé OVH).
Ce serait bien commode pour filtrer toutes les extensions htm/html/...
d'un seul coup.

D'avance merci pour vos réponses.

Cordialement,

Iulius
  Réponse avec citation
Vieux 01/08/2005, 17h56   #2
Leonick
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mod rewrite pour un répertoire

Le 01/08/2005 09:17, Iulius a écrit :
> Bonjour,
>
> Je rencontre un petit problème pour effectuer une
> redirection d'URL avec Apache.
>
> Je souhaite faire :
>
> http://www.monsite.com/rep1/rep2/page.htm
> =>
> http://www.monsite.com/page.php?rep1/rep2/page
>
> et
>
> http://www.monsite.com/rep1/rep2/
> =>
> http://www.monsite.com/page.php?rep1/rep2/index
>
>
>
> J'utilise pour cela, dans le fichier << .htaccess >> :
>
> Options +FollowSymlinks
> RewriteEngine on
>
> RewriteRule ^www/(.*)\.htm$ /page.php?$1 [L]
> RewriteRule ^www/(.*)/$ /page.php?$1/index [L]
> RewriteCond %{REQUEST_URI} !/$
> RewriteCond %{REQUEST_URI} !\.
> RewriteRule ^www/(.*)$ /page.php?$1/index [L]
>
>

J'ai un doute sur cette écriture.
Ca ne serait pas plutot RewriteRule ^www.monsite.com/(.*)\.htm$
/page.php?$1 [L]

Ensuite, il faut prendre l'habitude de ne pas mettre d'extension dans
les noms des pages, page au lieu de page.htm, etc...
Ca permet de ne pas avoir besoin de faire de réécritures phénoménales en
cas de changement de moteur de création de page (p/ex les faire en php,...)
Ensuite, sauf indication contraire dans les .htaccess, le fichier par
défaut d'un répertoire est index, donc pas besoin de le mettre dans l'URL.

--
Leonick
http://www.champignytriathlon.org Champigny Triathlon : le site du
multisport en Ile de France
  Réponse avec citation
Vieux 01/08/2005, 18h06   #3
Patrick Mevzek
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mod rewrite pour un répertoire

Le Mon, 01 Aug 2005 16:56:53 +0000, Leonick a écrit :
> J'ai un doute sur cette écriture.
> Ca ne serait pas plutot RewriteRule ^www.monsite.com/(.*)\.htm$
> /page.php?$1 [L]


Non, mod_rewrite ne traite que la partie chemin local de l'URL, il n'y a
pas le nom du site.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

  Réponse avec citation
Vieux 01/08/2005, 18h12   #4
Patrick Mevzek
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mod rewrite pour un répertoire

Le Mon, 01 Aug 2005 11:17:57 +0200, Iulius a écrit :
> Pourquoi un simple
>
> RewriteRule ^www/(.*) /page.php?$1 [L]
>
> ne marche-t-il pas pour envoyer directement tous les paramètres
> à ma page PHP qui se chargerait ensuite de traiter l'argument ?


Il manque probablement un QSA comme flag, donc [L,QSA] au lieu de [L] et
d'autre part la règle de match est étrange, vu qu'il n'y a pas de www
dans l'URL

> Cela ne passe en effet pas (hébergement mutualisé OVH).


Dans ce cas, monter le niveau de log de mod_rewrite et regarder ce qu'il
dit.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

  Réponse avec citation
Vieux 01/08/2005, 19h09   #5
Leonick
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mod rewrite pour un répertoire

Le 01/08/2005 17:06, Patrick Mevzek a écrit :
> Le Mon, 01 Aug 2005 16:56:53 +0000, Leonick a écrit :
>
>>J'ai un doute sur cette écriture.
>>Ca ne serait pas plutot RewriteRule ^www.monsite.com/(.*)\.htm$
>>/page.php?$1 [L]

>
>
> Non, mod_rewrite ne traite que la partie chemin local de l'URL, il n'y a
> pas le nom du site.
>

Justement, que vient faite le www dans sa réécriture ?

--
Leonick
http://www.champignytriathlon.org Champigny Triathlon : le site du
multisport en Ile de France
  Réponse avec citation
Vieux 04/08/2005, 08h28   #6
Iulius
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mod rewrite pour un répertoire

En réponse à Leonick :

>> RewriteRule ^www/(.*)\.htm$ /page.php?$1 [L]
>>

> J'ai un doute sur cette écriture.
> Ca ne serait pas plutot RewriteRule ^www.monsite.com/(.*)\.htm$
> /page.php?$1 [L]


Ben ça marche bien avec www/ en fait. Je n'ai pas un serveur dédié
mais suis sur un mutualisé chez OVH. Le chemin des pages à la racine
du site est :
/home/*login*/www/

Et c'est bien le << www/ >> qui est envoyé d'abord, comme j'ai pu
le constater avec :

RewriteRule ^(.*)\.htm$ /page.php?$1 [L]

où le script php écrit juste dans la page la variable passée.



> Ensuite, il faut prendre l'habitude de ne pas mettre d'extension dans
> les noms des pages, page au lieu de page.htm, etc...


C'est-à-dire ?
Que tout soit considéré comme un répertoire et aille vers le fichier
<< index.htm >> directement ?


Sinon, j'ai réussi à résoudre le problème ainsi :

ReWriteRule .*\.(gif|png|jpg|pdf|php|css|ico|txt)$ - [NC,L]
RewriteRule ^www/(.*) /page.php?$1 [NC,L]


Ça passe nickel maintenant (sans avoir besoin de mettre un .htm).
Je ne sais pourquoi c'est mieux. Peut-être parce que le renvoi
vers la page php était lui-même réécrit par Apache en boucle ?

En tout cas, je vous remercie pour les conseils que Patrick et vous
m'avez donnés sur le forum.

Iulius
  Réponse avec citation
Vieux 04/08/2005, 17h19   #7
Leonick
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mod rewrite pour un répertoire

Le 04/08/2005 07:28, Iulius a écrit :
> En réponse à Leonick :
>
>>> RewriteRule ^www/(.*)\.htm$ /page.php?$1 [L]
>>>

>> J'ai un doute sur cette écriture.
>> Ca ne serait pas plutot RewriteRule ^www.monsite.com/(.*)\.htm$
>> /page.php?$1 [L]

>
>
> Ben ça marche bien avec www/ en fait. Je n'ai pas un serveur dédié
> mais suis sur un mutualisé chez OVH. Le chemin des pages à la racine
> du site est :
> /home/*login*/www/


Oui, mais ce chemin n'est valable que dans les scripts php sur le
serveur et partiellement (le www) via ftp.
Pour l'utilisateur en http:, il ne verra pas le /www/

>> Ensuite, il faut prendre l'habitude de ne pas mettre d'extension dans
>> les noms des pages, page au lieu de page.htm, etc...

>
>
> C'est-à-dire ?
> Que tout soit considéré comme un répertoire et aille vers le fichier
> << index.htm >> directement ?


Non,par défaut, il recherche les extensions php, html, ...
donc si on veut utiliser par exemple php5, chez ovh il faut utiliser
l'extension php5 (le php4 n'utilisant que l'extension php), on n'aura
pas à réécrire tous ses liens dans les pages, et surtout les liens
indexés précédemment par les moteurs de recherches continueront d'être
fonctionnels.
>




--
Leonick
http://www.champignytriathlon.org Champigny Triathlon : le site du
multisport en Ile de France
  Réponse avec citation
Vieux 04/08/2005, 18h44   #8
Iulius
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Mod rewrite pour un répertoire

En réponse à Leonick :

> Oui, mais ce chemin n'est valable que dans les scripts php sur le
> serveur et partiellement (le www) via ftp.
> Pour l'utilisateur en http:, il ne verra pas le /www/


Pourtant, si je mets dans mon << .htaccess >> :

RewriteRule ^(.*) /test.php?page=$1 [NC,L]

et que je fais :

<?php echo $_GET['page']; ?>

j'obtiens :

www/page-demandée



Je crois savoir d'où cela vient : mon << .htaccess >> est à la racine
du site, c'est-à-dire juste à << /home/login/.htaccess >>.
C'est peut-être pour cela qu'il rajoute le << www >>.



> on n'aura pas à réécrire tous ses liens dans les pages, et surtout les liens
> indexés précédemment par les moteurs de recherches continueront d'être
> fonctionnels.


Pour faire encore plus simple, ma première ligne est :

<?php $page = preg_replace("/\.(.*)/", "", $_GET['page']); ?>

Comme cela, exit le problème d'extension. Tout passe très bien
et le référencement sera toujours bon.
Les liens que je fais dans mes pages sont de toute façon terminés par << .htm >> ;
mais comme cela n'est plus regardé lors de la redirection, c'est bon.

Iulius
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 19h00.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,17565 seconds with 16 queries