IIS UrlRewrite ne fonctionne pas pour IIS 8

je viens de déplacer mon site web sur un nouvel ordinateur qui utilise IIS 8 à partir d'un seul a IIS 7.5. Tout sauf la réécriture D'URL fonctionne bien. il n'y a pas de message d'erreur que "HTTP Error 404.0 - Not Found" qui je suis. Ce que j'ai seulement reconnu, c'est qu'il y a une entrée comme RewriteModule (%SystemRoot%system32inetsrvrewrite.dll) dans le site web>modules paramétrage page mais, IIS 8 un n'a pas le même module. Même si j'ai ajouté le même module à IIS 8, ça n'a pas marché. Je serai heureux si je peux avoir quelques suggestions sur la façon de résoudre le problème. Plus d'information pourrait être fournie lors de l' demande..

J'espère que je pourrais exprimer ce que je veux dire correctement.!

Merci d'avance,

alper

ps: les règles d'url fonctionnent bien..

18
demandé sur Daniel Daranas 2013-01-30 19:19:54

11 réponses

tout d'abord, vous devez vérifier si la réécriture d'url fonctionne bien, suivez cet exemple de tutoriel:

http://www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules

si ce n'est pas le cas, ouvrez IIS8 et vérifiez si L'icône de réécriture D'URL s'affiche. Si pas télécharger msi à partir d'ici:

http://www.iis.net/downloads/microsoft/url-rewrite

et réinstaller le module. Maintenant vous pouvez voir L'URL Module de réécriture dans IIS manager sur le noeud racine (noeud serveur) ainsi que sur le site web et les noeuds d'application web.

j'Espère que ça aide!

6
répondu Andrea Colabufalo 2013-06-20 09:27:12

j'avais oublié d'ajouter les fixations pour les domaines à rediriger. Par exemple: redirection vers https://www.example.com nécessite habituellement les reliures suivantes:

ces règles de redirection (partir) a ensuite travaillé pour moi:

<rule name="Redirect from non www" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTP_HOST}" pattern="^example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>
  <rule name="Redirect from non https" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTPS}" pattern="^OFF$" />
      <add input="{HTTP_HOST}" pattern="^www.example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>
2
répondu Andi R 2017-05-23 11:45:49

j'ai passé quelques heures à résoudre ce problème. Il y a des étapes que j'ai franchies et j'ai eu du travail de réécriture très bien

  1. réinstaller le module de réécriture. Si vous ne voyez pas ce module dans ISS et dans la liste des applications installées mais que rewrite installer dit que thar est déjà installé, allez à registry (HKLM/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/Uninstall) et serach 'rewrite'. Trouver Désinstaller chaîne et l'exécuter. Il va supprimer le module de réécriture et vous pouvez installer à partir de zéro.

  2. installer le module ARP pour IIS.

  3. IMPORTANT! Si vous avez déjà un site web.config with rules supprimer. Créer / ajouter des règles via le menu IIS. De cette façon, L'IIS activera le module ARP qui est important.

2
répondu Riddik 2017-12-27 07:26:16

je viens d'avoir un problème similaire après une mise à jour Windows Service 2008 à Windows Service 2012 et bien que je n'ai pas complètement testé cela, tout ce que j'ai fait était désinstaller/réinstaller le module de réécriture spécifiquement.

J'espère que cela aidera n'importe qui ayant le même problème.

1
répondu Sanction10 2013-04-22 08:44:51

j'ai aussi eu ce problème. Comme L'OP l'a remarqué, le .dll n'est pas enregistré. L'installateur dit que tout va bien, l'icône de réécriture est là dans IIS Manager, mais ça ne marche pas. Vérifier l' .dll est là (voir le chemin ci-dessous). Utilisez Microsoft notepad, vraiment, Je ne plaisante pas, il doit être Microsoft notepad, même visual studio ne fonctionnera pas pour cela. Démarrer le bloc-notes en tant qu'administrateur et l'ouvrir C:\Windows\System32\inetsrv\Config\applicationHost.config

Ajoutez la ligne suivante à la <globalModules> nœud.

<add name="RewriteModule" image="%SystemRoot%\system32\inetsrv\rewrite.dll" />

Save, et essayez vos règles maintenant.

il faut vraiment que ce soit notepad, si vous essayez d'éditer applicationHost.config sur un système 64bit avec autre chose, vous allez tirer vos cheveux pendant des heures. Une des anomalies de windows les plus étranges que j'ai jamais vues voir. http://weblog.west-wind.com/posts/2008/Aug/09/Editing-Applicationhostconfig-on-64-bit-Win2008 http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

1
répondu user138720 2014-08-06 21:00:05

le problème était Le motif

off

Dans IIS8 j'ai dû le mettre à jour ^OFF$

1
répondu MyDaftQuestions 2015-05-01 10:11:59

cela a aidé à vérifier et à corriger les règles de réécriture. Je sais que cela a fonctionné plus tôt et je ne suis pas conscient de le changer.

1
répondu qub1n 2015-09-01 20:02:28

Ouvrir le Gestionnaire des services IIS > Serveur > Modules > Configurer les Modules Natifs Dans la liste, sélectionnez RewriteModule et cliquez sur OK

IIS Config

ça marche pour moi.

1
répondu user1940849 2016-08-14 06:43:14

Vous pouvez essayer cette méthode. Après une petite recherche sur google, vous n'êtes pas le seul à avoir ce problème --> http://forums.iis.net/t/1173537.aspx/1

0
répondu Jean-François Poulin 2013-01-30 17:43:44

vérifiez aussi: assurez-vous que ce paramètre est false parce qu'autrement après la réécriture de L'URL réécrit l'URL, L'application .NET pourrait la réacheminer.

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
0
répondu Ben H 2016-10-21 00:36:38

Je n'ai pas pu trouver ce qui a causé le problème mais je viens de le résoudre aujourd'hui avec la réinstallation Windows server et IIS 8.

Merci pour votre intérêt et de votre temps précieux,

alper

-1
répondu alper 2013-01-31 21:28:37