web-dev-qa-db-fra.com

Quel est l'équivalent IIS d'une règle de réécriture qui envoie toutes les demandes à un fichier PHP?

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.

2
user2983512

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>
2
Stephen Ostermiller

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:

  1. Ouvrez IIS et sélectionnez le site Web associé.
  2. Aller à la section des erreurs et trouver l'erreur 404.
  3. Double-cliquez dessus.
  4. Changer l'URL en /index.php

Désormais, toutes les demandes inconnues sont redirigées vers index.php.

1
EngineerCoder