2017-07-18 31 views
0

私は、IISとReact Router v4で動作するルートをBrowserRouterを使用して取得しようとしています。React Router v4のIISルール

私のローカルホストには、すべてのルートが期待どおりに機能しています。反応するルータは、私はそれをしたいようにすべてを扱う:IISで、私は無視するルールを設定して、今すぐ

「/ appfolder/API/* '私のアプリのAPIを提供する目的のために。それは動作します。

IISに「http://www.example.com/appfolder/dest/CODE」にリダイレクトされるようにするにはどうすればいいですか?リアクタールーターにルールに従って処理させるにはどうすればよいですか。私が '/appfolder/index.html'にリダイレクトすると、ReactRouterが処理するために残しておきたい 'CODE'が緩んでいます。

regexpキャプチャグループを使用して 'http://www.example.com/appfolder/dest/CODE'にリダイレクトしようとすると、「ERR_TOO_MANY_REDIRECTS」が表示されます。

私は現在、私のweb.configファイルで、このルールを持っている:

<rule name="ReactRouter Routes" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_URI}" pattern="^/appfolder/api/" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="/appfolder/dest/CODE" /> 
     <!-- also tried this --> 
     <!-- action type="Redirect" url="/appfolder/index.html" /--> 
    </rule> 

答えて

0

私は解決策を見つけました。私はアクションタイプを書き換えに変更し、魅力的に機能しました。

IISルール最終的な解決策:

<rule name="ReactRouter Routes" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions logicalGrouping="MatchAll"> 
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    <add input="{REQUEST_URI}" pattern="^/appfolder/api/" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="/appfolder/index.html" /> 
</rule> 
関連する問題