DotNetNuke 3.1.1リリースとFriendly URLの扱い

DNNが3.1.0から3.1.1にバージョンアップされました。

https://www.dotnetnuke.com/

基本的に0.0.XのバージョンアップはバグFIXがメインとの事ですが、日本語(というよりダブルバイト圏)向けの機能も追加になっているところもあります。その一つが、FrendyURLという機能の問題点の改善です。

DNN Version 3からはFrendlyURLという機能が備わっています。これは一言で説明するとSEO(Search Engine Optimization、検索エンジン最適化)の機能です。Verion 2台のDotNetNukeでは

https://dotnetnuke/Default.aspx?tabid=49

の様な形式のURLで特定ページを示すのにtabidという引数を利用していました。こういった"?"でつなぐURLはSEO的に不利と言われるようになり、Version 3からは、

https://dotnetnuke/home/tabid/36/Default.aspx

の様な"?"の入らない形式に変更されました。また、SEO対策としてページ名をURLに埋め込むロジックも追加されました。このロジックが我々にはくせ者で、例えばページ名に「ホーム」という名前を付けると

https://dotnetnuke/ホム/tabid/36/Default.aspx

の様に全角文字がURLに入り問題になります。(長音"ー"が抜けるのは、マイナス記号を削除するロジックが入っており、マイナス記号と長音が同一視されるからです)。

さすがにこれでは問題があるので、DNN 3で日本語サイトを作るときには、Host Settingの中の「Use Frinedly URLs?」をオフして、Version 2相当に戻す必要があります。

今回のバージョンアップでは、そのFriendly URL機能に新しいオプションが追加され、ページ名を埋め込まない設定ができるようになりました。具体的には、web.configの

        <add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules.UrlRewrite" includePageName="True" />

のincluidePageName="False"に設定することで実現できます。

こうすることで、先ほどのURLならば、

https://dotnetnuke/tabid/36/Default.aspx

の様に"?"が入らない形式になります。

コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。