Je viens de déplacer mon site Web sur un nouvel ordinateur qui utilise IIS 8 sur un 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"
que j'ai eu. Ce que je viens de reconnaître, c’est qu’il y a une entrée comme RewriteModule (%SystemRoot%\system32\inetsrv\rewrite.dll)
dans la page de paramétrage de modules> mais IIS 8 n’a pas le même module. Même si j'ai ajouté le même module à IIS 8, cela n'a pas fonctionné. Je serai heureux si je peux avoir quelques suggestions sur la façon de résoudre le problème. Plus d'informations peuvent être fournies sur 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 ..
tout d’abord, vous devez vérifier si réécrire l’URL fonctionne bien. Suivez cet exemple de tutoriel:
Sinon, ouvrez IIS8 et vérifiez si l'icône de réécriture d'URL est affichée. Si ce n'est pas le cas, téléchargez msi à partir d'ici:
http://www.iis.net/downloads/Microsoft/url-rewrite
et réinstallez le module. Vous pouvez maintenant voir le module de réécriture d'URL dans le gestionnaire IIS lorsque vous vous trouvez sur le nœud racine (nœud du serveur), ainsi que sur les nœuds de sites Web et d'applications Web.
J'espère que ça aide!
J'avais oublié d'ajouter les liaisons pour les domaines à rediriger depuis . E.g. La redirection vers https://www.example.com nécessite généralement les liaisons suivantes:
Ces règles de redirection ( de SO ont alors fonctionné 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>
Pour moi, ma réécriture d'URL a fonctionné dans IIS7.5 mais pas dans IIS8
Le problème était le motif
Dans IIS7.5, le modèle était écrit comme suit: off
Dans IIS8, je devais le mettre à jour avec ^OFF$
J'ai passé quelques heures à résoudre ce problème. Il y a des étapes que j'ai suivies et j'ai bien fait fonctionner le module de réécriture.
HKLM/SOFTWARE/Microsoft/WINDOWS/CURRENTVERSION/Uninstall
) et à. . Recherchez la chaîne de désinstallation et exécutez-la. Il va supprimer le module Rewrite et vous pouvez installer à partir de zéro. 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 au courant de le changer.
J'ai aussi eu ce problème… .. Comme l'OP l'a remarqué, le fichier .dll n'est pas enregistré. Le programme d’installation dit que tout va bien, l’icône de réécriture se trouve dans IIS Manager, mais cela ne fonctionne pas. Vérifiez que le fichier .dll est là (voir le chemin ci-dessous). Utilisez le bloc-notes Microsoft. Vraiment, je ne plaisante pas, il doit s'agir d'un bloc-notes Microsoft, pas même Visual Studio ne fonctionnera pour cela. Démarrez le bloc-notes en tant qu'administrateur et ouvrez C:\Windows\System32\inetsrv\Config\applicationHost.config.
Ajoutez la ligne suivante au noeud <globalModules>
.
<add name="RewriteModule" image="%SystemRoot%\system32\inetsrv\rewrite.dll" />
Enregistrez et essayez vos règles maintenant.
En réalité, il doit s'agir du bloc-notes. Si vous essayez de modifier applicationHost.config sur un système 64 bits avec quoi que ce soit d'autre, vous vous arracherez les cheveux pendant des heures. Une des anomalies de fenêtres les plus étranges que j'ai jamais vues . http://weblog.west-wind.com/posts/2008/Aug/09/Editing-Applicationhostconfig-on-64-bit-Win2008http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/
Ouvrez IIS Manager> Server> Modules> Configure Native ModulesDans la liste, sélectionnez RewriteModule et cliquez sur OK.
Cela fonctionne pour moi.
Je viens d'avoir un problème similaire après une mise à jour de Windows Service 2008 à Windows Service 2012 et, bien que je ne l'aie pas encore complètement testé, je n'ai fait que désinstaller/réinstaller le module de réécriture.
J'espère que cela aide tous ceux qui ont le même problème.
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 également: Assurez-vous que ce paramètre est false
car sinon, après la réécriture d'URL, l'URL sera réécrite, l'application .NET pourrait le réacheminer.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">