主に SWFAddress を使用してフル フラッシュ用に設計されたサイトを持っているため、すべてのリンクはハッシュ "#" 記号 (例: www.site.com/#/folder/image.jpg) で終わります。
フラッシュを完全な HTML に切り替え、リンクを無効にしたくないので (Web に多くのリンクを残したので)、着信要求を制御する htaccess ファイルを作成しました。問題は、htaccess ファイルで処理できなかったため、ハッシュ "#" 記号にありました。最初の index.php の上に JavaScript コードを作成しました。
したがって、コントローラーをロードする前に、index.php ファイルは JavaScript で始まり、ハッシュ記号を削除し、URL に「#」を付けずにサイトにリダイレクトします。
<script type="text/javascript">
var link = location.href;
m = removeHash(link);
if (link != m) {
document.location.href = m;
}
function removeHash(l) {
var unhashedUrl = l;
if (l.indexOf("#") > -1) {
var url_pieces = l.split('/');
var request = url_pieces[url_pieces.length-1];
if(request.indexOf("#") == -1 && request.toLowerCase().indexOf(".jpg") > -1){
unhashedUrl = l.replace('#', "gallery");
}else{
unhashedUrl = l.replace('#/', "");
}
}
return unhashedUrl;
}
</script>
次に、すべてのphpが始まります...
Chrome、firefox、Opera、Safari、モバイル ブラウザなど、すべて問題なく動作します。しかし、やはり IE (テスト済みの IE8 と IE9) はおかしくなりました。IE は後で JS を起動しないようです。もちろん、インデックス コントローラー IE から JS を削除すると、うまく動作します。
どうすればこれを達成できますか?