5568 sujets

Sémantique web et HTML

Oyez oyez !

Je viens à votre rencontre pour solliciter votre aide et vos conseils, car je deviens chèvre.
Bon ok, je n'ai jamais été d'une grande efficacité avec les htaccess... mais là, il me semble que le problème est simple, mais je patoge dans la semoule... Voici le cas :


J'ai un site : principal.com

Celui ci a 2 activités : genre "neuf" et "reno".
Sur mon ftp, j'ai deux dossiers : neuf et reno, qui contiennent leur index et tout le tintouin.

J'ai aussi deux autres noms de domaine :
principal-neuf.com
principal-reno.com

Tous les deux renvoyant directement vers principal.com/neuf et principal.com/reno

Classique.

Sauf que voilà, je dois faire un petit urlRewritting, tout simple, mais le résultat me rend fou.

Sur principal.com, j'ai deux liens, qui doivent être :
principal-neuf.com/votre-neuf => principal.com/neuf/index.php
principal-reno.com/votre-reno => principal.com/reno/index.php

Et c'est le même principe avec d'autres liens.
Ces redirections sont invisibles. L'internaute verra toujours principal-neuf.com/votre-neuf.

Et c'est là que je sèche. Au début j'avais mis un htaccess à la racine du site, mais rien n'était pris en compte. Du coup, je me suis dit qu'il fallait mettre un htaccess dans chaque dossier cible, soit "neuf" et "reno", genre, pour le neuf :


RewriteEngine On
RewriteBase /neuf

RewriteRule mon-neuf$ index.php [QSA,L]


Mais j'obtiens des trucs bizarres, genre je tombe sur
principal-neuf.com/neuf/neuf, parfois

Ou alors il me remets toujours sur l'index.php de chaque dossier (neuf ou reno), quelque soit ce que je lui mets derrière...


Auriez-vous une piste...?
Bonjour pit07,
Je suis pas un pro du htaccess et j'espère avoir tout compris Smiley cligne .
Pour moi, c'est à la racine que le htaccess
va traiter l'url principal-neuf.com/votre-neuf ou principal-reno.com/votre-reno
j’aurai d’abord testé le domaine puis le dossier.
Ce qui devrait donner un truc comme cela :
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REMOTE_HOST} principal-neuf.com$
RewriteCond %{REQUEST_URI} ^votre-neuf$ 
RewriteRule (.*) neuf/index.php [QSA,L]

RewriteCond %{REMOTE_HOST} principal-reno.com$
RewriteCond %{REQUEST_URI} ^votre-reno$ 
RewriteRule (.*) reno/index.php [QSA,L]


REMOTE_HOST : à vérifier que c'est bien celui la qui remonte le domaine
^votre-**$ : avoir si il faut pas mettre ^/votre-**$

petite astuce que j'utilise pour savoir ce que renvoie exactement %{***}
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)   http://www.google.fr?q=%{***}   [R=301,L] 

https://httpd.apache.org/docs/current/fr/expr.html
Modifié par aliasdmc (03 May 2018 - 17:22)
Nop, ça me marque :

The requested URL /votre-neuf was not found on this server.


Bon, je continue de creuser... ça me semble bordélique à mettre en place en fait...
Bonjour pit07,

Il ne passe pas dans l'url rewritting :
Remplace : REMOTE_HOST =>HTTP_HOST

Pour l'url : http://principal-neuf.com/votre-neuf
Procède par etape :
1 étape) vérifier que l'url rewritting marche
Résultat : on doit être redirigé ver google,
on devrait avoir http://www.google.fr?q=principal-neuf.com
RewriteRule (.*)    http://www.google.fr?q=%{HTTP_HOST}    [R=301,L] 

2 étape) vérifier le teste du domaine est bon :
Résultat : on doit être redirigé ver google
on devrait avoir http://www.google.fr?q=/votre-neuf
ou q=votre-neuf
RewriteCond %{HTTP_HOST} principal-neuf.com
RewriteRule (.*)    http://www.google.fr?q=%{REQUEST_URI}    [R=301,L] 

3 etape) vérifier le teste du du dossier est bon
Résultat : on doit être redirigé ver google
on devrait avoir http://www.google.fr?q=/votre-neuf
ou q=votre-neuf
Me dire lequel des deux tu as pour le final
RewriteCond %{REQUEST_URI} votre-neuf 
RewriteRule (.*)    http://www.google.fr?q=%{REQUEST_URI}    [R=301,L] 

Si tous est ok on test les 2 conditions :
Résultat : on doit être redirigé ver google
on devrait avoir http://www.google.fr?q=youpi
RewriteCond %{HTTP_HOST} principal-neuf.com
RewriteCond %{REQUEST_URI} votre-neuf
RewriteRule (.*)     http://www.google.fr?q=youpi     [R=301,L] 

au final on replace la dernière ligne :

RewriteCond %{HTTP_HOST} principal-neuf.com
RewriteCond %{REQUEST_URI} votre-neuf
RewriteRule (.*) /neuf/index.php [QSA,L]

Modifié par aliasdmc (04 May 2018 - 20:50)
Ok je vais regarder tout ça, là j'ai un autre soucis :
J'ai fait tes tests avec l'astuce "Google", mais maintenant, ça doit être bloqué dans le cache, même en supprimant cette ligne je pars direct sur Google... Smiley lol

Je deviens fou !

Dès que le cache arrête de me faire ##### je continue ces tests !
Merci à toi en tout cas, je te tiens au courant.
Bonjour pit07,
Attention ce n'est pas ce que j'ai mis il faut mettre :
RewriteCond %{HTTP_HOST} principal-neuf.com
RewriteCond %{REQUEST_URI} votre-neuf
RewriteRule (.*)      http://www.google.fr?q=youpi      [R=301,L]


Et je pense que le code final sera :
RewriteCond %{HTTP_HOST} principal-neuf.com$
RewriteCond %{REQUEST_URI} ^/votre-neuf$
RewriteRule (.*) /neuf/index.php [QSA,L]

Modifié par aliasdmc (04 May 2018 - 20:51)
Nop, ça me met toujours

The requested URL /votre-neuf was not found on this server.

Smiley decu

ET ON DEVIENT FOU Smiley smile
pit07,

Désolé j'ai fait une bêtise :
REMOTE_HOST => HTTP_HOST
REMOTE_HOST = renvoie l'ip
HTTP_HOST = le nom de domaine
Je l'ai bien écrit au début mais après j'ai remis REMOTE_HOST
Ce cela devrait fonctionner :
RewriteCond %{HTTP_HOST} principal-neuf.com
RewriteCond %{REQUEST_URI} votre-neuf
RewriteRule (.*)        http://www.google.fr?q=youpi        [R=301,L]

Je fais le changement partout
Modifié par aliasdmc (04 May 2018 - 20:51)
Rebonjour !
Désolé de t'avoir laissé tombé... gros soucis persos...

Bon et bien j'ai donc repris ce dossier, et c'est toujours pareil, ça foire toujours avec :


RewriteCond %{REMOTE_HOST} accentdusud-piscine.com$
RewriteCond %{REQUEST_URI} piscine$ 
RewriteRule (.*) accentdusud.com/piscine     [R=301,L] 


essayé aussi avec RewriteRule (.*) accentdusud.com/piscine/index.php [R=301,L]

The requested URL /piscine was not found on this server.