J'ai toujours utilisé Apache pour tout mon travail de développement Web et j'ai du mal à comprendre IIS. J'ai une API qui réachemine toutes les demandes vers un fichier particulier: 'api.php', comment puis-je procéder comme suit dans IIS:
RewriteEngine on
RewriteRule ^/.* /api.php
Mon serveur n'autorise que les fichiers web.config. Par conséquent, je n'ai pas accès au gestionnaire IIS, ni à quoi que ce soit de ce type. J'utilise IIS 7.5.
Le modèle de conception que vous utilisez est appelé " contrôleur frontal " - un point d’entrée central pour le traitement des demandes.
Voici n site Web qui montre comment implémenter ce modèle avec différents serveurs Web . Voici la configuration recommandée par IIS dans le fichier web.config :
<?xml version="1.0"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="Silex Front Controller" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Première méthode:
Installez le programme d'installation de la plate-forme Web à partir de:
http://www.iis.net/downloads
Trouvez l'urlrewrite et ajoutez-le à IIS, puis vous pouvez trouver la section de réécriture d'URL dans IIS.
Vous pouvez créer une nouvelle règle ou importer à partir d'un fichier .htaccess via la réécriture d'URL.
Deuxième et méthode facile:
/index.php
Désormais, toutes les demandes inconnues sont redirigées vers index.php
.