Sous-domaines virtuels - Dossiers, fichiers & co

Nouveau WRInaute
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.
 
Nouveau WRInaute
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
 
WRInaute accro
je ne vois pas de règle qui ré-ecrit /breves/... c est donc normal.

/actualites/breves/ est different de /breves/
 
Nouveau WRInaute
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 ?
 
Nouveau WRInaute
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 ?
 
Nouveau WRInaute
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 ?
 
Discussions similaires
Haut