Besoin d'un connaisseur pour HTACCESS

Résolu/Fermé
Stef - 9 août 2011 à 21:45
 maniax - 9 août 2011 à 22:41
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

Hello,

rep est un sous domaine réel ? ou tu veux faire du wildcard DNS record?
0
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 vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 873
9 août 2011 à 21:51
'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
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
@ 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 vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 873
9 août 2011 à 21:58
j'aurais essayé ;)
0
les DNS de tes deux domaines pointent bien au même endroit ?
0
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
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
Ma réponse est juste au dessus si jamais ;)
0
@ 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
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
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
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
De rien, de rien ! content de t'avoir aidé =)

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

Au plaisir !
0