Besoin d'un connaisseur pour HTACCESS

Résolu
Stef -  
 maniax -
Bonjour,

J'ai une question pour vous. J'ai un hébergement (infomaniak) et 2 noms de domaines qui ne seront pas dirigés au même endroit. J'ai déjà essayé plusieurs choses différentes trouvées sur GOOGLE, mais sans grand succès.

Je voudrais que le premier domaine (domaine principal): mondomaine.com oblige les www et reste à la racine de mon hébergement.

Le deuxième: mondomaine2.com soir plutôt redirigé vers un répertoire (rep) avec l'adresse rep.mondomaine2.com et que cette adresse soit affichée dans le browser.

Est-ce possible? Si oui pouvez-vous m'éclairer, car ce que je croyais facile au départ est devenu un cauchemar.

Merci à l'avance,

Stef

13 réponses

maniax
 
Hello,

rep est un sous domaine réel ? ou tu veux faire du wildcard DNS record?
0
Stef
 
Un sous domaine réel.

Qu'est-ce que le wilcard DNS record? Désolé de mon ignorance.
0
kevin76110 Messages postés 4273 Date d'inscription   Statut Membre Dernière intervention   875
 
'lut,

Je te passe le début de mon .htaccess :


DirectoryIndex index.html index.php


Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.mon-site.fr [NC]
RewriteRule ^(.*)$   http://www.mon-site.fr?d=%{HTTP_HOST} [QSA,R=301,L]
</IfModule>

<Files .htaccess>
order allow,deny
deny from all
</Files>


Moi, mon but était que avec www ou sans, on arrive sur mon site.
C'est ma copine qui me l'a écrit ce .htaccess , moi je ne m'y connais pas trop trop.

J'espère que ça pourra t'aider un ptit peu, même si ta demande est inverse ;)
0
maniax
 
une simulation de sous-domaine en paramétrant le virtualhost + htaccess, je me penche sur ton cas, fais 2-3 tests et tente de t'apporter une réponse correcte
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Stef
 
@ kevin76110: J'ai essayé mais sans grand succès. Ton htaccess ressemble à celui que j'ai actuellement. Merci beaucoup de ton aide.



@ maniaz: merci de bien vouloir m'aider.
0
kevin76110 Messages postés 4273 Date d'inscription   Statut Membre Dernière intervention   875
 
j'aurais essayé ;)
0
maniax
 
les DNS de tes deux domaines pointent bien au même endroit ?
0
maniax
 
ca devrait ressembler à qqch du genre:

Options +FollowSymlinks 
RewriteEngine on 

RewriteCond %{HTTP_HOST} ^mondomaine1\.fr$ 
RewriteRule ^(.*) http://www.mondomaine1.fr/$1 [QSA,L,R=301] 

RewriteCond %{HTTP_HOST} ^http://(www\.)?mondomaine2\.fr 
RewriteRule ^(.*) http://rep.mondomaine2.fr/$1 [QSA,L,R=301] 


Edit: le http:// de la ligne
RewriteCond %{HTTP_HOST} ^http://(www\.)?mondomaine2\.fr
est surement de trop ^^
0
Stef
 
Oui, j'ai un domaine principal et des domaines secondaires et ils pointent tous à la racine. Si je créé un sous domaine test.domaine.com le sous domaine fonctionne aussi avec test.domaine2.com.

Merci à l'avance,

Stef
0
maniax
 
Ma réponse est juste au dessus si jamais ;)
0
Stef
 
@ maniax

J'ai un peu modifié ton code et ça fonctionne maintenant. Pourrais-tu me dire si mon code est correctement écrit (pour les engins de recherche).

Options +FollowSymlinks 
RewriteEngine on 

RewriteCond %{HTTP_HOST} ^domaine1\.com$ 
RewriteRule ^(.*) http://www.domaine1.com/$1 [QSA,L,R=301] 

RewriteCond %{HTTP_HOST} ^domaine2\.com$
RewriteRule ^(.*) http://rep.domaine2.com/ [QSA,L,R=301]


J'ai une question pour toi. Est-ce que chacun des RewriteCond ne lit que les RewriteRule sous lui. Je ne sais pas comment fonctionne l'ordre de priorité de ce fichier.

Merci à l'avance,

Stef
0
Stef
 
Par contre si je tape: www.domaine2.com, ça ne fonctionne pas du tout... Il pointe à la racine.

Je sens que ça approche...

Merci,

Stef
0
maniax
 
Il fallait modifier la ligne comme ça: RewriteCond %{HTTP_HOST} ^(www\.)?mondomaine2\.fr

Explications:

^ = Commence par
(www\.) = suivi de www.
? = ce qui est situé avant est optionnel (en l'occurence le www)
mondomaine2\.fr = suivi et ne se terminant pas forcement par .fr (redirige aussi les /index.php par exemple)

Pour répondre à ta question, les RewriteRules lisent les RewriteCond situés au dessus d'eux, et le L de [QSA, L, R=301] = Last

Si le htaccess à trouvé une correspondance dans un des rewriteCond, il s'arrête si le RewriteRule associé à un Last comme paramètre

Edit: edit en souligné
0
Stef
 
Un énorme merci... Tu es une vrai machine... J'ai passé tant de temps à essayer plein de chose et toi tu arrives avec la réponse en quelques minutes.

Merci, merci, merci... :-)

Je garde ce thread dans mes favoris pour le futur.

Encore merci,

Stef.
0
maniax
 
De rien, de rien ! content de t'avoir aidé =)

Un p'tit résolu pour le topic ? ^^

Au plaisir !
0