Azure Web Serviceで拡張機能のComposerを使うとvenderを含むurlへアクセスできなくなる問題を回避する ひとりぷちアドベントカレンダー2017 04日目
Azure Web Serviceにて一部のurlへできないと思ったら、拡張機能のComporserがブロックしていたというお話。 原因となるルールを削除することでアクセスできるようになります。
#タイトル長過ぎてひどい。
拡張機能のComporserを使うと起きる事
urlの中にvender
が含まれると、それ以下のファイルへアクセスできなく(403)なります。
たとえば、次のようなアドレスです。
これ、しばらくは原因が分からず地味に悩みました。拡張機能がこんなありがた迷惑なことをしているとは思わなかった。
対処方法
公開ディレクトリのweb.config
に次の項目を追加するとvender
以下へアクセスできるようになります。
やっている事は簡単、原因であるvender
以下をブロックするルールを名前を指定して削除しています。
<configuration> <system.webServer> <rewrite> <rules> <remove name="RequestBlockingRule1" /> </rule> </rewrite> </system.webServer> </configuration>
普通webrootを変更して、comporser
のvender
ディレクトリはwebrootの外になると思います。
なので、ルールを削除するだけで一件落着です。
拡張機能の中身
拡張機能を追加後、一覧の中から選ぶと詳細を確認できます。
この記述によると本体はこちらの模様。 github.com
そして原因は次の部分。
一見問題ないように見えるけれど、urlの途中にあるvender
にもマッチするようなのです......。
おわりに
こういう問題って分かってしまえば簡単なのだけれど、原因に気づくまでが大変です。
トラップに嵌る人が減りますよーに。