1

IIS 8 の URL 書き換えモジュールを使用して、2 つの cfm ページに使いやすい URL を作成しようとしています。

これが私が達成したいことです。次のページ:

www.mywebsite.com/news.cfm?category=microsoft
www.mywebsite.com/news.cfm?category=apple
etc

www.mywebsite.com/blog.cfm?title=sometitle
www.mywebsite.com/blog.cfm?title=sometitle
etc

次のようになります。

www.mywebsite.com/news/microsoft
or this
www.mywebsite.com/microsoft

www.mywebsite.com/blog/sometitle
or this
www.mywebsite.com/sometitle

あなたは絵を手に入れます。

これが私のコードです:

<rule name="RedirectUserFriendlyURL4" stopProcessing="true">
    <match url="^news\.cfm$" />
    <conditions>
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
        <add input="{QUERY_STRING}" pattern="^category=([^=&amp;]+)$" />
    </conditions>
    <action type="Redirect" url="news/{C:1}" appendQueryString="false" />
</rule>
<rule name="RewriteUserFriendlyURL4" stopProcessing="true">
    <match url="^news/([^/]+)/?$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="news.cfm?category={R:1}" />
</rule>

<rule name="RedirectUserFriendlyURL5" stopProcessing="true">
    <match url="^blog\.cfm$" />
    <conditions>
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
        <add input="{QUERY_STRING}" pattern="^title=([^=&amp;]+)$" />
    </conditions>
    <action type="Redirect" url="blog/{C:1}" appendQueryString="false" />
</rule>
<rule name="RewriteUserFriendlyURL5" stopProcessing="true">
    <match url="^blog/([^/]+)/?$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="blog.cfm?title={R:1}" />
</rule>

上記のルールは一緒には機能せず、両方のページが最初のルールで設定されたページにリダイレクトされます。これは 1 つのルールで実行できますか、それとも 2 つ使用する必要がありますか? どうすればこれを整理できますか?これについてあなたの助けを本当に感謝します. Windows と IIS 8 で ColdFusion 10 を使用しています。

4

0 に答える 0