301ReidrectPages中重復記錄導致的500 server error
阿新 • • 發佈:2017-10-02
mat action host mov ble currently .config 平臺開發 remove
在Umbraco平臺開發一個系統時,遇到一個問題,報錯500 server error, system is currently unable to handle this request.
按下F12鍵,查看發現是報 URL Rewrite module error
在該系統目錄下,確實有一個301RedirectsPages.config 文件,裏面是對老系統的一些url, redirect到新系統下的新url.裏面格式如下:
<rewriteMaps> <rewriteMap name="Redirects"> <add key="/Aa" value="/BBb"/> <add key="/Ac" value="/Bc"/> <add key="/Ad" value="/Bd"/> <add key="/Ae" value="/Be"/> <add key="/Af" value="/Bf"/> <add key="/Ag" value="/Bg"/> <add key="/Ah" value="/Bh"/> <add key="/Ac" value="/Bc"/> <add key="/Ad" value="/Bd"/> <add key="/Ai" value="/Bi"/> <addkey="/Ak" value="/Bk"/> </rewriteMap> </rewriteMaps>
在系統目錄下的webconfig文件中,有<system.webServer>節點下,有一個rewrite節點,如下:
<system.webServer> <rewrite> <rewriteMaps configSource="301RedirectsPages.config" /> <rules> <rule name="Redirect to HTTPS"stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> </rule> <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> <rule name="Redirects"> <match url=".*" /> <conditions> <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" /> </conditions> <action type="Redirect" url="{C:1}" appendQueryString="false" /> </rule> </rules> </rewrite> </system.webServer>
弄了很久,都沒有搞明白是哪裏出現了問題。後來才發現問題出現中 301RedirectsPages.config 中,因為這個文件中存在重復記錄。導致了這個問題出現
比如上面的301RedirectsPages.config文件中,
<add key="/Ac" value="/Bc"/> <add key="/Ad" value="/Bd"/>
這兩個都重復了兩次,把重復的刪除。
這個問題就解決了
301ReidrectPages中重復記錄導致的500 server error