2016-09-20 10 views
0

私はhttp://domain.com/calendar/にあるカレンダーを持っています。これは、現在の月のイベントを表示します。他の月は、これはモーメント(すなわち9月)でURL http://domain.com/calendar/september/http://domain.com/calendar/に重複したコンテンツを表示されていることを意味しそう (どのように)私はデフォルトのカレンダーページからユーザーをリダイレクトする必要がありますか?

  • http://domain.com/calendar/february/
  • http://domain.com/calendar/january/
  • で見ることができます。私の最初の考えは、 http://domain.com/calendar/から http://domain.com/calendar/{current-month}/にユーザーをリダイレクトすることでした。しかし、これにより検索エンジンは、メインのカレンダーURLではなく、最後に索引を付けた月のURLにユーザーを送信します。

    メインのカレンダーURLを文献でリンクすると無効にすることはできません。

    このシナリオを処理する最良の方法は何ですか?メインURLから特定の月にリダイレクトする必要がありますか?その場合、これは一時的なリダイレクト(302)ですか?私はこれが本当にリダイレクトのタイプではないとは思わない。それとも私は心配してはいけないことですか?

    私はこの段階でURLに年を追加することは心配していません。

答えて

0

月パラメータがオプションであるように私のルートを設定します。ユーザーがhttp://domain.com/calendar/にナビゲートすると、私のコントローラーはデフォルトで現在の月を使用します。ユーザーがhttp://domain.com/calendar/{month}/にナビゲートすると、URLに提供された月が使用され、代わりにその月が表示されます。

最終的には、特定の月を表示するためのオプションのルートパラメータを受け取るカレンダーを表示するための単一のエンドポイントを使用します。ここで

は、私はC#とMVCを使用してルートを作成する方法を次のとおりです。

public class CalendarController : Controller 
{ 
    public ActionResult Index(string month) 
    { 
     if(month == "") 
     { 
      month = DateTime.Today.ToString("MMMM"); 
     } 

     ViewBag.Month = month; 
     // ViewBag.Data = getData(month); // method to get events for month 

     return View(); 
    } 
} 

そして、私のルートは次のようになります。

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     // /calendar/october 
     routes.MapRoute(
      "Calendar", 
      "calendar/{month}", 
      new {controller = "Calendar", action = "Index", month = ""}); 
    } 
} 
0

あなたはジャバスクリプト(<body onload="setTimeout(document.location.href=get_next_month_url_function_you_make(),10)">)にリダイレクトを追加する場合はどうした後10ミリ秒のタイムアウトなので、検索エンジンは/ calendar /(これは適切なタイムアウトメタタグを与えるべきです)へのリンクを維持し、ユーザは月の詳細ページにリダイレクトされます。

1

現在のカレンダールートを/ calendarにそのまま残し、/ calendar/year/{currentmonth}ページにリダイレクトしません。あなたは年/カレンダー/年/月と一緒にアーカイブを作成する必要があり、以前の数ヶ月のために

あなたは/カレンダールートが常に含まれていますユニークな、スタティックルートがアップであることを示す指標のいくつかの種類を持っている場合(ページタイトル、コンテンツなどの形式で)最新のイベントを検索エンジンで常に索引付けすることができます。

アーカイブページから現在のカレンダーにリダイレクトしません。次の月に独自のコンテンツになるので、アーカイブをページングタイトルの前に付けるなどの方法でアーカイブを区別し、インデックスを作成することができます。

関連する問題