2017-07-14 5 views
0

私はASP.net MVC 5サイトを持っています。ホームページはhttp://mydomainです。ホームページへの「ホーム/インデックス」セカンダリルートを削除します

しかし、ホームページへの第2の経路もあります - http://mydomain/home/index - 私はそれが重複コンテンツとして見られるかもしれない、と画像はこのページに壊れているので、

これは問題を引き起こすと思います。

どうすればこのルートを完全に削除できますか(つまり、404になるでしょうか?)。

私はGoogleを検索しましたが、必要なものではなく、ルートから完全にホームを削除する記事しか見つかりません。私は、ルーティング属性を使用していて、これはすべてのことがRouteConfig.csにありますされて

:(あなたはおそらく期待通り?)

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

// Enable Route Attributes in Controllers 
routes.MapMvcAttributeRoutes(); 

// Fall through all routes 
routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

ホーム索引アクションは、それには属性のルートを持っていません。この/ home/indexルートは、新しく生成されたMVCプロジェクトでも機能します。これは悪い考えです。

どうすればいいですか?

私が考えていないこのルートを削除することに問題がありますか?

thx。

+1

'routes.MapRoute'行を削除すると、ルートが設定されます。 – DavidG

+0

重複したコンテンツは、SEOのコンテキストで意味する場合は問題にはなりません。この問題は "標準的なURL"を使用することで解決されます: – Jeroen

+0

私はSEOのために意味しました - 私も自分の正気のために意味しました - 私は壊れた画像を見ていたし、理由を見つけてください。また、私はそのラウンドを反転させる - どのような障害/ホーム/インデックスの害は何ですか? – niico

答えて

0

これは必須ではありません。

デフォルトルートでは、のオプションのコントローラ名とアクション名が提供されます()。したがって、ユーザがパス(/ Home/Indexまたは/ Home)にコントローラやアクションの名前をつけないと、asp.netはアプリケーションルーティングに適切な値を設定します。

Url.ActionまたはUrl.Route機能を使用するたびに、の最短のリンクが生成されます。 あなたのウェブサイトには、には常にhttp://mydomainが作成されます。たとえば、カテゴリ>インデックスアクションの場合、http://mydomain/categoryが生成されます。

あなたのウェブサイトでは、あなたのリンクがこのような方法であれば、ボットはコンテンツを複製しません。あなたのリンクを手書きで書いているのなら、できるだけ短く書くか、単にUrl.Actionを使用してください。

イメージについては、イメージが静的ファイルであるため、何か異なるはずです。 "〜/ imagefolder/imagename.jpg"という方法で取得してください。 ""は、IISのサブフォルダでアプリケーションを動作させる場合、アプリケーションのルートからリンクを開始するために重要です。

+0

私は壊れた画像を見ていて、なぜ私が/ home/indexにいたのか分かりませんでした(なぜ私がそこに行ったのか分かりません)。私はこのラウンドを反転させてください - 無効/家/インデックスの害は何ですか?私はそれの利点が存在するのを見ていない? – niico

+0

画像について - ページ内のCSSからリンクされているため、〜は動作しません。 – niico

2

IgnoreRoute()を使用して、不要なルートをブロックすることができます。

ただし、これらのURLがすでにワイルドにある場合は、意図した標準URLに301リダイレクトを設定する必要があります。これを行う最も簡単な方法はURL rewrite moduleです。

この/ home/indexルートは、新しく生成されたMVCプロジェクトでも機能します。これは悪い考えです。

私はこれを偽装のより多くの祝福とみなしています。 MVCを使用しているSEOの競合他社に勝る優位性があります。MVCを使用している場合、これらのルートを削除する余分な作業はありません。

+0

ありがとう - 野生ではなく、私はまだ/ home/otherstuffが必要なので、私はroutes.IgnoreRoute( "Home/Index"); – niico

関連する問題