2009-08-22 10 views
1

Ersten Blick auf dieser URL:Passing Nicht existierendes Verzeichnis als Parameter in IIS oder Apache

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

Dieses Verzeichnis nicht existiert hat, aber irgendwie kann Stackoverflow das letzte Verzeichnis als Parameter an seine Basis Skript übergeben.

Ist dies möglich, um IIS oder Apache zu konfigurieren? Wie?

+0

Als ich diesen Link folgen bekomme ich nur den Seitenkopf, keinen Inhalt. – pipTheGeek

+0

Nein können Sie auf der rechten Seite sehen: 0 Fragen markiert – EBAG

+0

Auch diese Seite sehen bedeutet, dass dieses nicht vorhandene Verzeichnis irgendwie behandeln – EBAG

Antwort

5

Der Mechanismus hinter dieser Art von Verhalten wird genannt-URL-Rewriting und kann entweder mit von Helicon Helikon ISAPI_Rewrite Lite angeboten (oder einer der nicht-freien Alternativen in Apache mit dem mod_rewrite -Module und in IIS implementiert wird) für IIS 5.1 und oder mit der Microsoft URL Rewrite Module for IIS 7.

Zum Beispiel stellen die folgenden Einstellungen sicher, dass jede Anfrage, die nicht mit einer vorhandenen Datei oder einem vorhandenen Verzeichnis abgeglichen werden kann, in die Datei index.php übertragen wird.

mod_rewrite (.htaccess in Ihrem Dokument Stammverzeichnis oder irgendwo in Ihrer 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 (im entsprechenden Dialog Ihrer IIS-Einstellungen)

// 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] 

Microsoft URL Rewrite-Modul (in Ihrem web.config im Dokumentstammverzeichnis oder seomewhere im Konfigurationsbaum)

<?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>