scriptタグのsrc属性に指定したURLがリダイレクトするとき、リダイレクト先のJavaScriptファイルがロードされるかどうか実験してみます。
はじめに手軽に実験するため、ApacheのErrorDocumentを使って、scriptタグが「302 Found(旧Moved Temporarily)」のリダイレクトをどう扱うか試してみました。使えるのならRewriteEngineのほうがよいかも。
↓次のとおり.htaccessファイルを用意しました。レスポンスコードが403と404のとき、指定のJavaScriptファイルにリダイレクトしています。また403x.jsをリクエストすると、「403 Forbidden」になるように制限しています。
.htaccess
<Files "403x.js"> Order allow,deny Deny from all </Files> ErrorDocument 403 http://developmentor.lrlab.to/json/403.js ErrorDocument 404 http://developmentor.lrlab.to/json/404.js
↓リダイレクト先のJavaScriptファイルは次のとおりです。
- 404.js
document.write('404.js');
- 403.js
document.write('403.js');
↓次のとおり、リダイレクトするようにURLを指定してみます。
<script type="text/javascript" src="403x.js"></script> <script type="text/javascript" src="404x.js"></script>
あなたのブラウザでも試せるようにファイルを公開しておきます。↓こんな感じです。
View example (403)
View example (404)
今回は次のブラウザとバージョンで試してみました。いずれのブラウザも期待どおり、リダイレクト先のJavaScriptファイルをロードしてくれました。
- Firefox/1.5 (Win32)
- IE 6.0 (Win32)
- Opera 9.10 (Win32)
どうやら他のブラウザも同じように振舞ってくれそうな感じですね。