SEO URL переписывает ASP.NET - PullRequest
       32

SEO URL переписывает ASP.NET

5 голосов
/ 29 сентября 2011

У меня уже есть веб-сайт ASP.NET

Я хочу изменить свой сайт, чтобы сделать его более удобным для SEO.

Я хочу поменять экс. этот сайт: www.mydomain.aspx? идентификатор_статьи = 5

в: www.mydomain / статьи / learningURLrewrite - артикул должен быть прочитан из БД

Как мне это сделать?

Я уже пытался с некоторыми статьями от Google, в которых упоминается IhttpModule без какой-либо удачи.

Моя цель - создать класс, отвечающий за перенаправление на основе пути к папке (например):

string folderpath = "my folderpath" (could be articles, products etc.)
string id = Request.QueryString["id"].ToString();

if(folderpath.equals("articles"))
{
   string name = //find name from id in DB
   //redirect user to www.mydomain/article/name 
}

if(folderpath.equals("products"))
{
   string name = //find name from id in DB
   //redirect user to www.mydomain/products/name 
}

Также я хочу удалить расширение aspx

Ответы [ 4 ]

1 голос
/ 29 сентября 2011

Вы также можете использовать маршрутизацию с ASP.NET WebForms.

Шаги:

  1. Добавить маршрут (или маршруты) при запуске приложения.

    //In Global.asax
    void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapPageRoute("My Routename", "{*name}", "~/Article.aspx");
    }
    
  2. Создайте Article.aspx как обычную веб-форму

  3. В коде для Article.aspx вы можете получить доступ к URL-пути следующим образом:

    public void Page_Load(object sender, EventArgs e)
    {
        var thePath = RouteData.Values["name"];
    
        // Lookup the path in the database...
    }
    
0 голосов
/ 29 сентября 2011

Если вы используете .net 3.5 или менее, вы можете использовать эти

  1. http://urlrewriting.net
  2. http://urlrewriter.net

Я использую второй, во всех моих проектах, сделанных в .net 3.5

если вы используете .net 4.0, вы можете сделать это

  1. маршрутизация URL (я думаю, что она не поддерживает перезапись поддоменов)
  2. URL Rewrite 2.0 (работает только с IIS 7)

UPDATE

Добавьте эти строки под тегом appSettings

<rewriter configSource="URLRewriter.config"/>

Затем создайте отдельный файл с именем URLRewriter.config

И в этом вы можете написать так (добавьте остановку обработки для файлов, которые не будут перезаписаны, т.е. изображения и js и т. Д.)

<rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js|\.flv|\.eot|\.svg|\.ttf|\.woff|\.txt|\.doc|\.docx|\.pdf|\.xls|\.xlsx|\.xml)(\?.+)?)$" to="$1" processing="stop" />
<rewrite url="~/article/([^/.]+)" to="~/articledetail.aspx?articlename=$1" />

Тогда вы получите название статьи в строке запроса, как это

string articlename = Request.QueryString["articlename"];

И в меню или в другом месте сайта, где вы хотите разместить ссылку на статью, вы можете добавить AppSettings, чтобы позже, если вы хотите изменить шаблон URL, вы могли легко изменить его только из конфигов,

  <add key ="ArticalDetailsURL" value="/article/{0}" />

Затем на странице вы можете сделать это

string articleName = "TestArticle";
lnkMenuLink.NavigateUrl = string.Format(ConfigurationSettings.AppSettings["ArticalDetailsURL"], articleName);

Спасибо и всего наилучшего,

Harsh Baid

0 голосов
/ 29 сентября 2011

Если вы используете ASP.NET 4, то вам следует изучить маршрутизацию URL. В конечном итоге вы настроите пользовательские маршруты следующим образом:

routes.MapPageRoute(
      "View Article",               // Route name
      "Articles/{*ArticleName}",  // Route URL
      "~/Articles.aspx"      // Web page to handle route
   );

И вы пишете новые ссылки примерно так:

Page.GetRouteUrl("View Article", new { ArticleName= NAMEFROMDATABASE });

К сожалению, я не дам вам краткую информацию о том, как создать весь ваш сайт, но 2 действительно хороших места для начала - статья Скотта Гу и статья о 4 парнях .

0 голосов
/ 29 сентября 2011

Эта публикация расскажет вам точно, как использовать механизм маршрутизации asp.net 4, - если вы столкнетесь с конкретной проблемой в его реализации, сообщите нам.

http://weblogs.asp.net/dotnetstories/archive/2011/01/03/routing-in-asp-net-4-0-web-forms.aspx

Так как вам нужно конкретное использование параметров, вы можете определить параметры для отправки на вашу страницу.Для этого см .: http://msdn.microsoft.com/en-us/library/cc668177.aspx

и

Как: получить доступ к параметрам URL на перенаправленной странице

...