SharePoint 2013 のリッチテキストにファイルサーバーへのリンク(UNC)が入らない
SharePoint 2013 でひそかに(?)行われた仕様変更のひとつです。セキュリティ的には正しいのですが、社内利用する上ではいろいろ不便だったりします。
SharePoint 2010 までは、リッチテキストに「¥¥」からはじまる UNC パス、あるいは「file://」形式でリンクを挿入すれば、ローカルのファイルやフォルダをリンクして開くことが出来ました。これはファイルサーバーと SharePoint を併用している場合に重宝するので、実際に利用されている方は多いです。
しかし、やはりセキュリティ的に問題がある、という判断でしょうか。SharePoint 2013 ではこれが利用できなくなりました。SharePoint Online でも同様です。
SharePoint 2013 のリッチテキストに file:// リンクを挿入しようとします。
とりあえず[OK]します。
一見、ちゃんと挿入されたように見えます。
ソースを確認しても、きちんと file:// がリンクとして記述されています。
しかし、これを保存すると…
残念ながらクリックしても反応しません。
改めてアイテムを編集し、再度、ソースを確認すると、A タグの中が綺麗さっぱり消されています(余計なことを…笑)
これは SharePoint 2013 の仕様なので、どうしようありません。
一応の迂回策としては、「ハイパーリンク」列を使うのですが…あれ???
リンクをクリックしても開きません。
ハイパーリンク列の値にすると、file:// が消されることは避けられます。ただ、このあたりはまだ確証が取れていないのですが、どうやら SharePoint Online については、このリンクすらブロックされてしまうケースがあるようです(ウチのテナントで発生)。
こうなると、更なる迂回策としては、HTMLベースのリダイレクトしかないですね。しかし、個々にリダイレクトページをつくるのは少々現実的ではありません。汎用的につくるなら、リダイレクト用のページを用意して、そこに URL のパラメーターとしてローカルパスを渡し、JavaScript でローカルにリダイレクトする、とまあ、ギリギリ、エンドユーザーさんでも運用が回るんじゃないでしょうか。
なお、この問題については良い話(?)もあり。
どうやら最新の Hotfix(kb2882987)で修正されるようです。
Assume that you add a multiple lines of text column to a SharePoint list. You create a new list item and add a hyperlink to a URL by using a file:// protocol or a Universal Naming Convention (UNC) path. When you save the list item, the URL value is removed silently.
http://support.microsoft.com/kb/2882987
この Hotfix は、やはり最新の 2014年7月の SharePoint Server CU に含まれています。
July 2014 CU for SharePoint 2013 has been released
July 8, 2014 Cumulative Update for SharePoint Server 2013 package
もちろん、出たばかりの CU なので適用するかどうかは慎重にご判断ください。
なお、この CU での改善について、idea.toString(); さんが詳しく検証してくれました(→SharePoint 2013 で複数行テキスト列へ共有フォルダーへのリンクが挿入できるようになった )。やはり UNC も file:// も、この CU で利用できるようになるようです。もっとも、file:// についてはブラウザ側の制約もあるのですが。
ただ、気になるのは SharePoint Online の扱い。基本的に CU は Online に先行して適用され(ついでにその結果からバグも解消され)、そのあとオンプレミスだと認識していたのですが…クラウドではやはりセキュリティ上の観点から、この fix は適用しない、という判断はあり得る、のかもしれません。
参考:sharepointのリストでリンク先が消える
http://community.office365.com/ja-jp/f/329/t/244124.aspx