Question

Premier coup d'oeil à l'adresse suivante:

https://stackoverflow.com/questions/tagged/xoxoxo/

Ce répertoire n'existe pas, mais stackoverflow peut passer d'une certaine manière ce répertoire en tant que dernier paramètre à son scénario de base.

Est-ce possible de configurer IIS ou Apache pour le faire? Comment?

Était-ce utile?

La solution

Le mécanisme derrière ce genre de comportement est appelé url réécriture et peut être mis en œuvre dans Apache mod_rewrite -modules et dans IIS avec soit hélicons ISAPI_Rewrite Lite (ou l'une des alternatives non libres offertes par Helicon) pour IIS 5.1 et 6 ou Microsoft URL Rewrite Module IIS 7 .

Par exemple, les paramètres suivants veilleront à ce que toute demande qui ne peut être égalée sur un fichier ou un répertoire existant sera transféré au fichier index.php.

mod_rewrite (.htaccess dans votre répertoire racine de document ou quelque part dans votre httpd.conf)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR] // IF is file (with size > 0)
RewriteCond %{REQUEST_FILENAME} -l [OR] // OR is symbolic link
RewriteCond %{REQUEST_FILENAME} -d      // OR is directory  
RewriteRule ^.*$ - [NC,L]               // DO NOTHING
RewriteRule ^.*$ index.php [NC,L]       // TRANSFER TO index.php

ISAPI_Rewrite Lite (dans la boîte de dialogue appropriée de vos paramètres IIS)

// uses same syntax as mod_rewrite
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Module Microsoft URL Rewrite (dans votre web.config dans le répertoire racine du document ou seomewhere dans l'arborescence de configuration)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="MatchExistingFiles" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" ignoreCase="false" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" ignoreCase="false" />
                    </conditions>
                    <action type="None" />
                </rule>
                <rule name="RemapMVC" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAll" />
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top