Sous-domaines virtuels - Dossiers, fichiers & co

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

mehlorb
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Mar 28, 2007 15:46

Sous-domaines virtuels - Dossiers, fichiers & co

Message le Mer Mar 28, 2007 15:58

Bonjour à tous, voilà je compte mettre en place des sous-domaines sur un site.
Jusque là pas de problème.

Voici la règle du .htaccess concernant les sous-domaines :

RewriteCond %{HTTP_HOST} !^www\.([^.]+)\.([^.]+)
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)
RewriteRule ^/?$ /%1/$1/

Ensuite j'ai toute une série de règles qui réécrivent avec répertoires, sous-répertoires, fichiers etc.. Mais rien ne passe. J'ai sans doute oublié quelque chose ou cela ne s'utilise peut-être pas comme ça.

Voici un exemple concret :

Je tapes : http://actualite.monsite.com/
La règle ci-dessus m'affiche http://www.monsite.com/actualite/

Mais si je tapes : http://actualite.monsite.com/breves/123.html
Erreur 404 :(

Pourtant cette règle devrait être prise en compte :
RewriteRule ^actualite/([^/]+)/([0-9]+)\.html$ actus/?type=$1&detail=$2 [L]

Alors que je voudrais voir apparaitre la page :
http://www.monsite.com/actualite/breves/123.html

Merci d'avance pour vos précieuses réponses.

mehlorb
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Mar 28, 2007 15:46

Message le Jeu Mar 29, 2007 9:29

Bon, peut-être n'est-ce pas la bonne méthode de réécrire en deux temps.

Alors dans ce cas est-il possible après des RewriteCond pour un sous domaine précis, d'avoir un groupe de règles de rewriting.
Comme ça seuls les sous-domaines existants seront gérés, les autres redirigeant vers l'accueil en www.

Un exemple avec l'actualité :

RewriteCond %{HTTP_HOST} ^actus\.?([^.]+).([^.]+)
RewriteRule ^/?$ actualite/?liste=all&detail= [L]
RewriteRule ^tout/?$ actualite/?type=tout&detail= [L]
RewriteRule ^page([0-9]+)\.html$ actualite/?type=tout&page_num=$1&detail= [L]
RewriteRule ^([^/]+)/?$ actualite/?type=$1&detail= [L]
RewriteRule ^([^/]+)/semaine_date_([^/]+)\.html$ actualite/?type=$1&semaine_date=$2&liste=semaine&detail= [L]
RewriteRule ^([^/]+)/([^/]+)-([0-9]+)\.html$ actualite/?type=$1&detail_type=$1&detail=$3 [L]

Je voudrais que lorsqu'on se trouve dans http://actus.monsite.com, les règles qui suivent soit prises en considération et par conséquent, seule l'une d'entre elles sera utilisée. Le problème vient du fait que seule la première est associée à la condition RewriteCond ci-dessus.
Peut-être juste une histoire de flag à modifier.

Merci de votre aide


e-kiwi
Modérateur
Modérateur
 
Messages: 13854
Inscription: Mar Déc 23, 2003 9:04

Message le Jeu Mar 29, 2007 9:42

je ne vois pas de règle qui ré-ecrit /breves/... c est donc normal.

/actualites/breves/ est different de /breves/

mehlorb
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Mar 28, 2007 15:46

Message le Jeu Mar 29, 2007 10:01

Si, celle-ci : RewriteRule ^([^/]+)/?$ actualite/?type=$1&detail= [L]

Elle réécrit toutes les sous-rubriques de l'actualité (brèves, entretiens, ...)

http://actus.monsite.com/breves/
et http://www.monsite.com/actus/breves/

doivent rediriger vers :
http://www.monsite.com/actualite?type=breves&detail=
ou http://actus.monsite.com/actualite?type=breves&detail=

Mais seule celle en www fonctionne

Je suis en train de chainer les règles avec le flag [C,L] mais ce n'est pas encore ça.

Une idée ?

mehlorb
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Mar 28, 2007 15:46

Message le Jeu Mar 29, 2007 11:45

RewriteCond %{HTTP_HOST} ^actus\.([^/]+)\.([^/]+)
RewriteRule ^([^/]+)/?$ actus/$1

J'ai essayé de modifier la règle comme ceci mais ce n'est pas concluant.
Quelqu'un sait-il ce qu'il manque ?

http://actus.cession-commerce.com/
OK -> http://actus.cession-commerce.com/actualite/

http://actus.cession-commerce.com/breves/
404 -> http://actus.cession-commerce.com/actualite/breves/

Ensuite j'ai mis ceci :
RewriteCond %{HTTP_HOST} ^actus\.([^/]+)\.([^/]+)
RewriteRule ^(.*)$ actus/$1

Et là : 500 Internal Server Error

Une idée ?

mehlorb
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Mar 28, 2007 15:46

Message le Jeu Mar 29, 2007 16:26

Mmm pas de réponse..

En essayant de nombreuses modifications de règles je me suis rendu compte que l'expression (.*) qui signifie tous les caractères, ne passe pas et provoque une erreur 500.

Y-aurait-il un réglage à effectuer côté serveur ?

Par ailleurs, avec la règle ci-dessous, j'accède aux sous-rubriques uniquement si je ne mets pas le slash final dans l'adresse sinon 404

RewriteCond %{HTTP_HOST} ^partenariats\.cession-commerce\.com
RewriteRule ^([^/]*)$ partenariats/$1

Des idées quelqu'un ?

mehlorb
Nouveau WRInaute
 
Messages: 9
Inscription: Mer Mar 28, 2007 15:46

Message le Ven Mar 30, 2007 9:45

Vraiment personne n'a d'idée sur ce sujet ?


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 :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités