Удаление расширения .aspx из URL-адресов: простое руководство

Привет! Итак, вы хотите узнать, как избавиться от надоедливого расширения.aspx в URL-адресах вашего веб-сайта? Что ж, вы пришли в нужное место. В этой статье я покажу вам несколько способов удалить расширение.aspx и сделать ваши URL-адреса более чистыми и удобными для пользователя. Давайте погрузимся!

Метод 1: переписывание URL-адресов
Переписывание URL-адресов — это мощный метод, позволяющий изменять и украшать ваши URL-адреса. В случае удаления расширения.aspx вы можете использовать правила перезаписи URL-адресов для внутреннего перенаправления запросов с URL-адресов с расширением на соответствующие страницы без него. Вот пример использования платформы ASP.NET:

void Application_Start(object sender, EventArgs e)
{
    // Register the URL rewriting rule
    RouteTable.Routes.Add(new Route("{page}", new PageRouteHandler()));
}
public class PageRouteHandler : IRouteHandler
{
    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        // Extract the page name from the URL
        string pageName = requestContext.RouteData.Values["page"] as string;
        // Construct the actual page URL
        string pageUrl = string.Format("~/Pages/{0}.aspx", pageName);
        // Create the page handler
        var page = BuildManager.CreateInstanceFromVirtualPath(pageUrl, typeof(Page)) as IHttpHandler;
        return page;
    }
}

Благодаря реализации этой логики перезаписи URL-адресов ваши URL-адреса будут выглядеть так, как будто расширения.aspx не существует. Например, https://example.com/about.aspxстанет https://example.com/about.

Метод 2: настройка маршрута (ASP.NET MVC)
Если вы используете ASP.NET MVC, вы можете добиться того же результата, настроив маршруты в своем приложении. По умолчанию маршруты MVC настроены на включение имен действий и контроллеров в URL-адрес. Однако вы можете настроить маршруты, исключив расширение.aspx. Вот пример:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

При такой конфигурации URL-адреса типа https://example.com/about.aspxбудут сопоставлены с действием Aboutв контроллере Home, а расширение.aspx будет опущено.

Метод 3: перенаправление URL-адресов.
Другой подход заключается в использовании перенаправления URL-адресов для перенаправления запросов с URL-адресов с расширением.aspx на соответствующие страницы без него. Этого можно добиться с помощью серверных методов или с помощью файла конфигурации веб-сервера, например .htaccess(если ваш веб-сайт размещен на Apache). Вот пример правила перенаправления в файле .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.aspx [NC,L]

Это правило перенаправляет запросы URL-адресов без расширения файла на тот же URL-адрес с добавленным расширением.aspx.

Метод 4: сокращение URL-адресов
Если вам нужно быстрое и простое решение без внесения каких-либо изменений в конфигурацию вашего веб-сайта, вы можете использовать службы сокращения URL-адресов. Эти службы позволяют создавать собственные сокращенные URL-адреса, которые перенаправляют на ваши фактические URL-адреса.aspx. Таким образом, вы сможете делиться с аудиторией более понятными и удобными URL-адресами.

В заключение отметим, что существует несколько способов избавиться от расширения.aspx в URL-адресах. Независимо от того, решите ли вы реализовать перезапись URL-адресов, настройку маршрутизации, перенаправление URL-адресов или использовать службы сокращения URL-адресов, цель состоит в том, чтобы создать более чистые и удобные для пользователя URL-адреса, которые улучшат общее впечатление пользователя от вашего веб-сайта. Так что выбирайте метод, который подходит вам лучше всего, и удачной оптимизации!