IIS 7용 Rewrite

2011. 7. 9. 07:35컴퓨터_computer/SERVER

IIS 7용 Rewrite

아래 Rule을 web.config에 넣으면 됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="rule 1" stopProcessing="true">
                    <match url="^layouts/(.+)/(.+)\.html$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php" />
                </rule>
                <rule name="rule 2" stopProcessing="true">
                    <match url="^(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*)" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{SCRIPT_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="./files/{R:2}/{R:3}" />
                </rule>                <rule name="rule 3" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)(/[a-zA-Z0-9_]+(/entry)?)?/(files|modules|common|widgets|widgetStyle|layouts|addons)/(.*)" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{SCRIPT_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="./{R:4}/{R:5}" />
                </rule>
                <rule name="rule 4" stopProcessing="true">
                    <match url="^(rss|atom)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?module=rss&amp;act={R:1}" appendQueryString="false" />
                </rule>
                <rule name="rule 5" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/(rss|atom|api)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?mid={R:1}&amp;act={R:2}" appendQueryString="false" />
                </rule>
                <rule name="rule 6" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?vid={R:1}&amp;mid={R:2}&amp;act={R:3}" appendQueryString="false" />
                </rule>
                <rule name="rule 7" stopProcessing="true">
                    <match url="^([0-9]+)/(.+)/trackback$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?document_srl={R:1}&amp;key={R:2}&amp;act=trackback" appendQueryString="false" />
                </rule>
                <rule name="rule 8" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?vid={R:1}&amp;document_srl={R:2}&amp;key={R:3}&amp;act=trackback" appendQueryString="false" />
                </rule>
                <rule name="rule 9" stopProcessing="true">
                    <match url="^admin/?$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?module=admin" appendQueryString="false" />
                </rule>
                <rule name="rule 10" stopProcessing="true">
                    <match url="^([0-9]+)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?document_srl={R:1}" appendQueryString="false" />
                </rule>
                <rule name="rule 11" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/?$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{SCRIPT_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="./index.php?mid={R:1}" appendQueryString="false" />
                </rule>
                <rule name="rule 12" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/([0-9]+)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?mid={R:1}&amp;document_srl={R:2}" appendQueryString="false" />
                </rule>
                <rule name="rule 13" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{SCRIPT_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="./index.php?vid={R:1}&amp;mid={R:2}" appendQueryString="false" />
                </rule>
                <rule name="rule 14" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?vid={R:1}&amp;mid={R:2}&amp;document_srl={R:3}" appendQueryString="false" />
                </rule>
                <rule name="rule 15" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/entry/(.+)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?mid={R:1}&amp;entry={R:2}" appendQueryString="false" />
                </rule>
                <rule name="rule 16" stopProcessing="true">
                    <match url="^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$" ignoreCase="false" />
                    <action type="Rewrite" url="./index.php?vid={R:1}&amp;mid={R:2}&amp;entry={R:3}" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>