ホームページ
2025年11月18日

Umbraco 301リダイレクト

SEO
Umbraco
C#

「Umbraco」には、あまりプロパティがない。
たとえば「umbracoRedirect」や「umbracoUrlAlias」などがある。とても便利!僕はそのプロパティをよく使っている。

でも!「umbracoRedirect」のリダイレクトは302。でも本当は301リダイレクトのほうがいい。302はぜんぜん SEO によくない!

だから、自分で301リダイレクトを作った!今回は Notification を使っている。

この「Umbraco」のバージョンは13。

まず、「Umbraco」で新しい Content Picker のプロパティを追加する。このれいでは、 Content Picker のエイリアスを「permanentRedirect」にしたほうがいい。

次に、RoutingRequestNotificationを作る。

using Umbraco.Extensions;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Models.PublishedContent;

namespace Starterkit.Notifications
{
    public class PermanentRedirectNotification : INotificationHandler<RoutingRequestNotification>
    {
        private readonly IVariationContextAccessor _variationContextAccessor;

        public PermanentRedirectNotification(IVariationContextAccessor variationContextAccessor)
        {
            _variationContextAccessor = variationContextAccessor;
        }

        public void Handle(RoutingRequestNotification notification)
        {
            var requestBuilder = notification.RequestBuilder;

            _variationContextAccessor.VariationContext = new VariationContext(requestBuilder.Culture);

            var content = requestBuilder.PublishedContent;

            if (content == null) return;
                
            var redirectNode = content.Value<IPublishedContent>("permanentRedirect");

            if (redirectNode != null)
                requestBuilder.SetRedirectPermanent(redirectNode.Url(mode: UrlMode.Absolute));
        }
    }
}

最後に、Composer を作る。

僕は Startup.cs のファイルがあまり好きじゃない。だからよく Composer を使う!

namespace Composers
{
    public class Starterkit.RedirectComposer : IComposer
    {
        public void Compose(IUmbracoBuilder builder)
        {
            builder.AddNotificationHandler<RoutingRequestNotification, PermanentRedirectNotification>();
        }
    }
}

終わり!
今、そのプロパティを設定したページにアクセスすると、301リダイレクトが動作する!
SEO のランキングを上げたいなら、この方法はけっこうおすすめ!

参考リンク

ヨハネス・ランツ

ヨハネス・ランツ

ウェブ開発者・経験8年

採用可能

お問い合わせ