Redirections multiples avec la méthode 404/ASP

T
trinha
Guest
Bonjour,

J'avais un site qui se trouvait un répertoire, et je lui ai donné un nom de domaine indépendant :

h**p://www.site.com/monwebsite -> h**p://www.monwebsite.com

Je suis sur un serveur windows IIS, je ne pouvais donc pas utiliser de fichier .htaccess pour faire des redirections multiples. Du coup mon hébergeur a placé deux fichiers asp dans l'ancien répertoire du site (site.com/monwebsite) afin que toutes les pages soient redirigées vers la page correspondante sous le nouveau nom de domaine (monwebsite.com)

Ca marche parfaitement, seulement quelle conséquence a cette méthode sur le référencement, sur le PageRank ?

De plus dans le code des fichiers asp, il ne figure rien par rapport à le redirection permanente 301, alors qu'en consultant plusieurs pages de WRI, j'ai souvent vu le code : <response.status = "301 moved permanently">
Seulement ce n'était pas la même méthode (juste pour une page, moi c'est pour tout le site.)
Dois-je integrer ce code, ou un équivalent, dans un des deux fichiers ? si oui comment ?

Merci d'avance

- Voici le code des deux fichiers (j'ai remplacé les noms de site comme dans l'exemple) -

Fichier 404.asp

Code:
<%
'--| err404 = URL /404.asp
'  installer la page 404 type=url "/404.asp"
'  faire 'tester l'existence du fichier' sur la config .php
'  créer un www1 pour tester
'
newserver="www.monwebsite.com"
rr=Request.QueryString
'response.write rr
if InStr(rr,";")<>0 then rr=Mid(rr,InStr(rr,";")+1)
'response.write rr
rr=REPLACE(rr, Request.ServerVariables("SERVER_NAME"), newserver)
rr=REPLACE(rr, "monwebsite/","")
'response.write rr
Response.Redirect rr
%>


Fichier default.asp

Code:
<% 
newserver="www.monwebsite.com"
Response.Redirect "http://"&newserver 
%>

Je placerai plutôt de nouvelles lignes de code dans le fichier default.asp pour la redirection 301, mais comme je n'y connais rien, j'attends votre avis
 
T
trinha
Guest
Resalut,

Je viens de modifier intégralement le code du fichier <default.asp> par celui ci :
Code:
<%
response.status = "301 moved permanently"
response.addheader "location", "http://www.monwebsite.com/"
response.end
%>

techniquement ça marche parfaitement pour toutes les pages.

Est-ce mieux pour le référencement ou est-ce pareil ?

Merci
 
WRInaute impliqué
Le fichier default.asp est correct, mais tu pourrait le simplifier avec
<%
response.redirect "http://www.monwebsite.com/"
%>

par contre je ne sais pas quel est le type de redirection dans ce cas ?

le champ response.status est peut être en lecture/ecriture et dans ce cas pourrait être modifié ?
 
WRInaute accro
olivieri a dit:
Le fichier default.asp est correct, mais tu pourrait le simplifier avec
<%
response.redirect "http://www.monwebsite.com/"
%>

par contre je ne sais pas quel est le type de redirection dans ce cas ?
response.redirect fait une redir 302 ... donc garde les modifications que tu as faites ... :wink:

Si la structure de fichier reste la même tu dois pouvoir mettre ça dans le fichier 404.asp :
Code:
<%
PAG = Request.ServerVariables("URL") 
PAG = Mid (PAG, 12, Len(PAG)-12)                 'supression du répertoire /monwebsite
PAR = Request.ServerVariables("QUERY_STRING") 
IF PAR <>"" then PAR = "?" + PAR 
response.status = "301 moved permanently" 
response.addheader "location", "http://www.monwebsite.com/" + PAG + PAR
response.end 
%>

cela te permet (code à vérifier quand même) d'adresser la même page dans le nouveau domaine et concervant les paramètres passés, sans passer par defaut.asp (qui à mon avis ne sert à rien) ... :wink:
 
T
trinha
Guest
Bonjour Cendrillon,

Oui la structure reste la même, et avec les deux fichiers 404 et default, ça marche très bien : chaque page est redirigée vers la même page mais du nouveau nom de domaine.

J'ai essayé ce que tu proposes, en insérant ton code dans le 404 et en supprimant le default. Ca marche très bien par la page d'accueil, mais pour les autres pages ça donne "la page est introuvable".

Mais c'est peut être de ma faute, je n'ai pas indiqué dans l'exemple que le nom du répertoire est différent du nom de domaine.
h**p://www.site.com/repertoiredemonwebsite -> h**p://www.monwebsite.com

Et là ça donnerait avec ton code, pour la page <page1.htm>:
h**p://www.monwebsite.com//repertoiredemonwebsite/404.asp?404;http://www.site.com/repertoiredemonwebsite/page1.htm


Alors qu'avec les deux fichiers, je tombe bien sur : h**p://www.monwebsite/page1.htm

Pour reprendre le code du 404 donné au dessus, ça donne


Code:
newserver="www.monwebsite.com"
rr=Request.QueryString
'response.write rr
if InStr(rr,";")<>0 then rr=Mid(rr,InStr(rr,";")+1)
'response.write rr
rr=REPLACE(rr, Request.ServerVariables("SERVER_NAME"), newserver)
rr=REPLACE(rr, "repertoiredemonwebsite/","")
'response.write rr
Response.Redirect rr

Mais si le code du default est bon pour les moteurs de recherche, alors c'est parfait
 
WRInaute accro
OK par contre ton code n'est pas bon pour le référencement, si tu veux la garder remplace :
Code:
Response.Redirect rr
par
Code:
response.status = "301 moved permanently" 
response.addheader "location", rr
response.end
 
T
trinha
Guest
Ca y est, j'ai fait la modif, ça marche. J'ai essayé de supprimer le fichier <default.asp>, et effectivement il n'a l'air de servir à rien.

Merci bcp, c'est sympa.

Donc du coup, je n'ai plus qu'un seul fichier <404.asp>, avec le code suivant qui devrait maitenant être bon pour le référencement :
Code:
<%
'--| err404 = URL /404.asp
'  installer la page 404 type=url "/404.asp"
'  faire 'tester l'existence du fichier' sur la config .php
'  créer un www1 pour tester
'
newserver="www.monwebsite.com"
rr=Request.QueryString
'response.write rr
if InStr(rr,";")<>0 then rr=Mid(rr,InStr(rr,";")+1)
'response.write rr
rr=REPLACE(rr, Request.ServerVariables("SERVER_NAME"), newserver)
rr=REPLACE(rr, "repertoiredemonwebsite/","")
'response.write rr
response.status = "301 moved permanently"
response.addheader "location", rr
response.end
%>

Merci encore
 
T
trinha
Guest
Cendrillon a dit:
et tu peux utiliser cet outil pour vérifier tes headers ... :wink:

Outil très utile , merci. Après l'avoir testé, j'ai remis en place le fichier <default.asp>.
qui contient le code :
Code:
<%
response.status = "301 moved permanently"
response.addheader "location", "http://www.monwebsite.com/"
response.end
%>

Sans ce fichier, c'est ok pour toutes les pages (résultat : "HTTP/1.1 301 moved permanently", avec la nouvelle "location" de la page) sauf pour la page d'accueil h**p://www.site.com/repertoiredemonwebsite/, le résultat était : "HTTP/1.1 403 Accès interdit" ! 8O

Du coup j'ai remis le fichier <default.asp>, et le résultat ést maintenant "HTTP/1.1 301 moved permanently" et "location: h**p://www.monwebsite.com/"

En revanche, si j'ôte le slash de fin < h**p://www.site.com/repertoiredemonwebsite>, le résultat est "HTTP/1.1 302 Object Moved" et "Location: h**p://www.site.com/repertoiredemonwebsite/"

Est ce normal qu'avec le slash ce soit bon, et sans non ? Est-ce que ça a une importance :?:
 
WRInaute accro
oui car sans le "/" final tu as deux redirections ... une première redir en 302 de "h**p://www.site.com/repertoiredemonwebsite" vers "h**p://www.site.com/repertoiredemonwebsite/" pui une deuxième redir en 301 de "h**p://www.site.com/repertoiredemonwebsite/" vers "h**p://www.monwebsite.com/" ...

je n'ai pas vérifié mais d'après ce que tu obtiens l'outil WRI ne dois voir que la première redirection ...
essai avec celui la qui vois jusqu'à 8 redirections successives ... :wink:
 
Discussions similaires
Haut