Problème d'interdiction de sous-domaines

douda99

Nouveau WRInaute
Bonjour à tous, je suis nouveau sur ce forum et j'ai besoin d'aide.

Je m'explique, j'ai un site sous joomla 1.5 avec sh404sef qui gère tout ce qui est url-rewriting, metatag, etc...

J'ai des sous-domaines aussi qui pointent sur mon serveur sauf que j'aimerai faire quelque modifs sur l'URL à partir du .htaccess.

Prenons comme exemple le traitement des URL du sous-domaine des actualités :
http://www.mon-domaine.com/015/titre-de-l-actu.html ==> http://actualite.mon-domaine.com/015/titre-de-l-actu.html
http://www.mon-domaine.com/news/index.html ==> http://actualite.mon-domaine.com/news/index.html

Pour l'instant tout est bon et ce traitement a été fait avec ce code au niveau du fichier .htaccess :
Code:
RewriteCond %{HTTP_HOST} ^www.mon-domaine.com$
RewriteCond %{REQUEST_URI} ^/[0-9]{3}/(.+)$
RewriteRule ^([0-9]{3}/(.+))$ http://actualite.mon-domaine.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www.mon-domaine.com$
RewriteCond %{REQUEST_URI} ^/news/(.+)$
RewriteRule ^(news/(.*))$ http://actualite.mon-domaine.com/$1 [L,R=301]

Mon problème à l'heure actuelle se résume comme suit : supposons qu'on est à la page http://actualite.mon-domaine.com/news/index.html et qu'on veut aller à la page magazine.html (qui n'appartient pas aux actualités, il faudrait retravailler l'url pour que ça soit http://www.mon-domaine.com/magazine.html et non pas http://actualite.mon-domaine.com/magazine.html

Voilà le code que j'ai mis au niveau du fichier .htaccess :
Code:
RewriteCond %{HTTP_HOST} ^actualite.mon-domaine.com$
RewriteCond %{REQUEST_URI} !^/news/(.*)$
RewriteRule ^(.*)$ http://www.mon-domaine.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^actualite.mon-domaine.com$
RewriteCond %{REQUEST_URI} !^/[0-9]{3}/(.+)$
RewriteRule ^(.*)$ http://www.mon-domaine.com/$1 [L,R=301]

Le problème est que ces conditions ne marchent pas, et je crois que les instructions !^/news/(.*)$ et !^/[0-9]{3}/(.+)$ ne fonctionnent pas correctement (j'ai voulu désigner toutes URL qui n'appartiennent pas au domaine actualite.mon-domaine.com...

Quelqu'un peut m'aider SVP ?
 

douda99

Nouveau WRInaute
Je ne sais pas si j'ai bien posé ma problématique, mais pour expliquer autrement mon souci, comment puis-je transmettre ces instructions à mon .htaccess :

Si le HTTP_HOST = http://actualite.mon-domaine.com
et que si le REQUEST_URI n'est ni sous la forme ^/news/(.+)$ , ni sous la forme ^/[0-9]{3}/(.+)$

==> Alors faire RewriteRule ^(.*)$ http://www.mon-domaine.com/$1 [L,R=301]
??
 

douda99

Nouveau WRInaute
Bonjour,

est-ce possible de faire ça avec les Les assertions avant négatives (negative lookahead) (?!motif) ??

J'aimerai bien avoir une réponse SVP car je suis bloqué et j'ai beau surfé sur les forums mais je trouve pas de réponse !! :?
 

douda99

Nouveau WRInaute
Je viens de trouver la solution, en fait il fallait mettre ça en code dans le .htaccess :

Code:
RewriteCond %{HTTP_HOST} ^www.mon-domaine.com$
RewriteCond %{REQUEST_URI} ^/[0-9]{3}/(.+)$ [OR]
RewriteCond %{REQUEST_URI} ^/news/(.+)$
RewriteRule ^(.+)$ http://actualite.mon-domaine.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^actualite.mon-domaine.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/news/(.*)
RewriteCond %{REQUEST_URI} !^/[0-9]{3}/(.*)
RewriteRule ^(.*)$ http://www.mon-domaine.com/$1 [L,R=301]

On dirait que le fait de mettre les deux lignes suivantes prenait en considération mes conditions :

Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Merci à tous et j'espère que dans un prochain sujet j'aurai des réponses.
 

douda99

Nouveau WRInaute
Rebonjour,

malheureusement je reviens à la charge en espérant que cette fois-ci j'aurai une réponse.

Mon dernier post ci-dessus m'a permis de naviguer entre les sous-domaine en changeant l'adresse comme voulu, sauf qu'un petit pépin réside dans la réécriture de l'URL à savoir :

Si je suis sur la page http://actualite.mon-domaine.com/044/titre-de-l-actu.html et que je reviens à la page d'accueil, il me mentionne comme URL http://actualite.mon-domaine.com/ et non pas http://www.mon-domaine.com/

Quelqu'un a une idée sachant que le code dans mon fichier .htaccess est le suivant :

Code:
RewriteCond %{HTTP_HOST} ^www.mon-domaine.com$
RewriteCond %{REQUEST_URI} ^/[0-9]{3}/(.+)$ [OR]
RewriteCond %{REQUEST_URI} ^/news/(.+)$
RewriteRule ^(.+)$ http://actualite.mon-domaine.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^actualite.mon-domaine.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/news/(.*)
RewriteCond %{REQUEST_URI} !^/[0-9]{3}/(.*)
RewriteRule ^(.*)$ http://www.mon-domaine.com/$1 [L,R=301]

Merci d'avance.
 

Discussions similaires

Haut