2017-03-08 27 views
2

大規模なデータベース駆動型Webサイトをcoldfusion .cfmから.net aspxに移動します。私は今かなり終わりましたが、私は新しいaspxのページにすべてのcoldfusionのページで301リダイレクトをする必要があります。Googleと同じように、検索エンジンの位置を失いたくないのです。だから私はこれにURLリライトを使用するつもりだったが、私はそれを動作させることができない、ほとんどの時間私は404を返す。SEO用IISリライトURLを使用してすべてのColdFusion CFMページをASP aspxページに移動

基本的に、私の新しいaspxページはすべて同じファイル名です。.cfmは.aspxに置き換えられます。いくつかのページは、後に長いクエリ文字列を持つことができます。

例:http://www.example.com/test.aspx

http://www.example.com/test2.cfm?a=1&b=2&c=3、サイト自体は数百ページを持っており、一部のページは、クエリ文字列に8以上の変数を持つhttp://www.example.com/test2.aspx?a=1&b=2&c=3

に再マップする必要がありますに再マッピングする

http://www.example.com/test.cfmニーズだから私はちょうどURL書き換えでまっすぐな地図をやってみたかった。それは年齢がかかるように私はページごとにルールを行うことはできません!

私の現在の試みは、次のとおりです。

<rule name="redirect all requests" stopProcessing="true"> 
<match url="^(.*)$" ignoreCase="true" /> 
<conditions logicalGrouping="MatchAll"> 
<add input="{URL}" pattern="^http://www.example.com/(.*).cfm(.*)$" /> 
</conditions> 
<action type="Redirect" url="http://www.example.com/{C:1}.aspx" appendQueryString="true" logRewrittenUrl="true" /> 
</rule> 

これは私だけのために404を行います。明らかにcfmページは存在せず、aspxページは現在行われています。私はまだColdFusionをサーバーにインストールしています.Googleが自身を更新するまでは、アンインストールする必要はありません(問題の場合は、いつでも元に戻すことができます)。

ご協力いただければ幸いです。

おかげ

デビッド

+0

IIS 404ページに、ロードしようとしているファイルの名前がありませんか。 –

答えて

0

それはこのようなものだ...

<rule name="CFM301ASP" stopProcessing="true"> 
    <match url="^(.*)$" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" pattern="^.*\.cfm$" negate="false" ignoreCase="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> 
    </conditions> 
    <action type="Redirect" url="/yourfile.aspx" appendQueryString="true" redirectType="Permanent" /> 
</rule> 

存在しないのcfms(ISFILE =偽)でのみ動作。 301はCFMをリダイレクトして404をASPファイルに送り、URL変数を追加します。

0

ドキュメントでは、このすべてをカバーしているようです。 HTTP Redirect上のドキュメントから

<configuration> <system.webServer> <httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Found"> <add wildcard="*.php" destination="/default.htm" /> </httpRedirect> </system.webServer> </configuration>

は、これはあなたが別のファイルextenstionからURLをマッピングすることができるはずと信じて私を導きました。

Creating Rewrite Rules for the URL Rewrite Module

<rewrite> <rules> <rule name="Rewrite to article.aspx"> <match url="^article/([0-9]+)/([_0-9a-z-]+)" /> <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" /> </rule> </rules> </rewrite>

、あなたは、あなただけの*.aspx*.cfmから転送することができます正しい構文を見つけることができるはずです同じクエリ文字列に沿って通過する、または作るこれらのドキュメントを読ん試してみてください必要に応じて翻訳を行います。

+0

この例はリダイレクトされません。リライトです。それはすべてのURL変数を保持しません。 – Jules

関連する問題