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..
11 réponses
tout d'abord, vous devez vérifier si la réécriture d'url fonctionne bien, suivez cet exemple de tutoriel:
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!
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>
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
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.
installer le module ARP pour IIS.
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.
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.
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/
le problème était Le motif
offDans IIS8 j'ai dû le mettre à jour ^OFF$
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.
Ouvrir le Gestionnaire des services IIS > Serveur > Modules > Configurer les Modules Natifs Dans la liste, sélectionnez RewriteModule et cliquez sur OK
ça marche pour moi.
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
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">
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