0

I'm trying (and epicly failing) to figure out the necessary rules to achieve the following as permanent 301 redirects:

www.mysite.com                    > mysite.com
mysite.com/oldfolder              > mysite.com
www.mysite.com/oldfolder          > mysite.com
mysite.com/oldfolder/old-file     > mysite.com/old-file
www.mysite.com/oldfolder/old-file > mysite.com/old-file

If anyone with an understanding of IIS7 rewrite module could help out I'd be very grateful!

4

2 に答える 2

0

将来の参考のために、また同様のことを行っている他の人のために、最終的に使用したルールの合計を次に示します。

<rewrite>
        <rules>
            <!--To always remove trailing slash from the URL-->
            <rule name="Remove trailing slash" stopProcessing="true">
                <match url="(.*)/$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Redirect" redirectType="Permanent" url="{R:1}" />
            </rule>
            <!-- redirects blog/2012/10/post to /post. -->
            <rule name="Redirect blog with dates to root" stopProcessing="true">
                <match url="^blog/([0-9]+)/([_0-9]+)/(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(www\.)?mydomain.com$" />
                </conditions>
                <action type="Redirect" url="http://{C:0}/{R:3}" redirectType="Permanent" />
            </rule>
            <!-- redirects blog/post to /post. -->
            <rule name="Redirect blog to root" stopProcessing="true">
                <match url="^blog/(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(www\.)?mydomain.com$" />
                </conditions>
                <action type="Redirect" url="http://{C:0}/{R:1}" redirectType="Permanent" />
            </rule>
            <!-- redirects case-studies/case-study to /case-study. -->
            <rule name="Case studies redirect." stopProcessing="true">
                <match url="^case-studies/(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^(www\.)?mydomain.com$" />
                </conditions>
                <action type="Redirect" url="http://{C:0}/{R:1}" redirectType="Permanent" />
            </rule>
            <!-- for SEO the www is stripped from the URL. -->
            <rule name="Canonical host name.">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTP_HOST}" pattern="^mydomain\.com$" negate="true" />
                </conditions>
                <action type="Redirect" url="http://mydomain.com/{R:1}" />
            </rule>
            <!-- removes index.php from the URL. -->
            <rule name="wordpress" patternSyntax="Wildcard">
                <match url="*"/>
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                </conditions>
                <action type="Rewrite" url="index.php"/>
            </rule>
        </rules>
    </rewrite>
于 2013-02-19T10:58:23.947 に答える
0

次のようなルールを追加する必要があります。

要求された URL: パターンに一致

使用: 正規表現

パターン: oldfolder

大文字と小文字を区別しない: true

アクションの種類: リダイレクト

リダイレクト URL: htt://www.mysite.com

クエリ文字列を追加: false リダイレクト タイプ 301

于 2012-11-07T16:56:25.237 に答える