Redirection 301 sur Serveur Windows .aspx / Please Help

WRInaute discret
Bonjour,

Comment faire une redirection 301 (d'un domaine ver un autre) dans un serveur windows avec des pages en exension .aspx

Là je suis perdue, merci de votre aide

PS: Oubliez le htaccess ça ne marche pas dans cette configuration.
 
WRInaute discret
Pour Info: Serveur mutualisé chez 1&1 propose bien la possibilité de faire des rédirections mais seulement en 302 ou en frames. Pas de 301 dispo.
 
WRInaute discret
Je sais faire sur php. Mais aucune idée dans Asp

Quelles lignes de code à mettre avant le script ?
Sur php ... <?php ... ?> Sur Asp ?

Alors je fais comment :?: Connait rien aux serveurs windows.

Quelqu'un saurait comment faire ?
 
WRInaute passionné
Code:
<%@ Page Language="VB" %>
<script runat="server">
Response.Status = "301 Moved Permanently"
Response.AddHeader("Location", "http://www.example.tld")
Response.End()
</script>
 
WRInaute discret
Ca ne marche pas il me donne une erreur
/GenericErrorPage.htm?aspxerrorpath=/

Ce n'est pas un serveur apache, mais un serveur Microsoft IIS

Finalement en cherchant, cherchant... j'ai trouvé un post sur wri qui parle du problème.

https://www.webrankinfo.com/forum/t/url-rewriting-avec-site-en-asp-et-iis.1474/

Hetzeld indique des logiciels spéciphiques. Mais Cprail à l'air de dire que les procedures d'URL rewriting sous IIS sont impossible à mettre en place sur un serveur mutualisé.

PS: Y-a-t-il un référenceur spécialisé dans ASP et IIS dans la salle ?
 
WRInaute accro
Ce que t'a donné BadProcESs fonctionne très bien sur un server IIS/ASP. L'extension aspx indique un server ASP.NET, le script dépend du langage que tu auras retenu :

Code:
en C#
  <script>
     private void Page_Load(object sender, System.EventArgs e) {
        Response.Status = "301 Moved Permanently";
        Response.AddHeader("Location","http://www.example.tld");
     }
  </script>

en VB
  <%
      private sub Page_Load(object sender, System.EventArgs e)
         Response.Status = "301 Moved Permanently"
         Response.AddHeader("Location","http://www.example.tld")
      end sub
   %>

Bon courage.
 
WRInaute discret
Mille mercis Cendrillon,

Ce n'est pas tout à fait ça, mais grâce à tes indications j'ai trouvé :)

Alors c'est en VB mais le code que tu as indiqué donnait la même erreur.

Donc j'ai cherché les différents languages et je pense que je suis sur ASP3, VBScript, ce qui explique que tous ces codes généraient une erreur

http://www.codyx.org/snippet_redirectio ... y_3.aspx#6

Donc le code qui marche dans mon cas est

Code:
<%@ Page Language="VB" %>
<% 
Response.Status = "301 Moved Permanently" 
Response.AddHeader("Location", "ttp://www.example.tld") 
%>

Ca marche, bonne rédirection avec un header 301.
 
WRInaute discret
Autre question.

Comment je fais du url rewritting dans ce asp.

En principe je voudrais, lui dire que le site avec et sans www est le même. En redirigeant celui avec www vers celui sans www

Des idées ?
 
WRInaute passionné
Il faut utiliser un composant optionel (donc vérifie que ton hébergeur en a un). Le plus connu et le plus utilisé est ISAPI_Rewrite, qui est une copie carbonne de mod_rewrite de php.

Après, le code à mettre dans le httpd.ini est :
Code:
# From http://example.tld to http://www.example.tld
RewriteCond Host: (?!www\.)(.+)
RewriteRule (.+) http\://www.$1$2 [I,RP]
 
WRInaute discret
Je ne pense pas que je puisse faire ça avec l'hébergeur mutualisé 1&1.
J'ai testé : mis un fichier httpd.ini, rien ne se passe.

J'ai déjà appelé trois fois l'hébérgeur. Je ne l'appellerai plus, parce j'ai constaté qu'ils sont incapables de faire un support technique sur IIS. Sur Unix ça va, mais sur Windows ils sont perdus.

Si j'écrivais toutes les anneries qu'ils m'ont racconté, c'est à pleurer. Du genre oui le htaccess marche très bien sur IIS ou... non il est impossible de faire une rédirection 301 sur IIS... Enfin n'importe quoi à chaque fois.
 
WRInaute accro
kasperle a dit:
Donc le code qui marche dans mon cas est

Code:
<%@ Page Language="VB" %> 
<% 
Response.Status = "301 Moved Permanently" 
Response.AddHeader("Location", "ttp://www.example.tld") 
%>

Ca marche, bonne rédirection avec un header 301.

c'est pourtant le code que t'a donné BadProcESs ... :roll:

Ce qui est étonnant, c'est que tes pages ASP3 aient une extension aspx réservée aux pages ASP.NET. Ca fonctionne parceque ton server n'est pas en .NET mais si tu changes pour un serveur .NET, tes pages ne marcherons pas forcément parce qu'il essayera de les interpréter en ASP.NET. Tu devrais profiter de ton URL Rewritting maison pour les remettre en asp.

Pour faire de l'url rewritting en ASP3, il te faut le développer toi même, en utilisant les variables d'environnements serveur. Sachant que l'URL est dans Request.ServerVariables("SERVER_NAME"), le nom de la page dans Request.ServerVariables("URL") et les paramêtres (sans le "?") dans Request.ServerVariables("QUERY_STRING"), c'est pas trop compliqué ...

allez au boulot !
 
WRInaute discret
Mille mercis Cendrillon, je vais étudier tout ça de près.

Je confirme que je suis en ASP3 et que le code donné par BadProcESs ne marchait pas sur ASP3. Ce n'est pas le même :wink: . En faite, il suffit d'enlever le ReponseEnd pour qu'il marche. Avec ReponseEnd ça ne marche pas sur ASP3, en tout cas moi il me donnait une erreur.

Merci à tous les deux de m'avoir aidé à resoudre ce problème.

Je vais me pencher sur le développement de l'url rewritting en ASP3...
 
WRInaute passionné
kasperle a dit:
En faite, il suffit d'enlever le ReponseEnd pour qu'il marche. Avec ReponseEnd ça ne marche pas sur ASP3, en tout cas moi il me donnait une erreur.

En fait il faut que tu enlève simplement les parenthèses :
Response.End fonctionne parfaitement en ASP 3 ;)
 
Discussions similaires
Haut