1

このURLを最初に見てください:

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

このディレクトリは存在しませんが、どういうわけか、stackoverflowはその最後のディレクトリをパラメータとしてベーススクリプトに渡すことができます。

これは、IISまたはApacheを構成するために可能ですか?どのように?

4

1 に答える 1

5

この種の動作の背後にあるメカニズムはurl-rewriting呼ばれ、-modules を使用してApache実装できます。IIS 7Microsoft URL 書き換えモジュールmod_rewrite

たとえば、次の設定により、既存のファイルまたはディレクトリと一致しないすべての要求がファイルに転送されindex.phpます。

mod_rewrite(.htaccessドキュメントのルート ディレクトリまたは のどこかに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 (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]

Microsoft URL 書き換えモジュール(web.configドキュメント ルート ディレクトリまたは構成ツリーのどこかにある)

<?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>
于 2009-08-22T11:04:06.583 に答える