To give content editors and other staff easier access to the administration application from the frontend Core site, you can set up a redirection mechanism. The redirect can give users the illusion of working in a single application. For example, you can set it up so that the administration application is available under ~/admin, similar to other content management systems.
To configure the redirection mechanism, we recommend using the URL rewriting (opens in a new tab) middleware together with a custom rewrite rule:
Add the rewriting middleware to your application's middleware pipeline.
Create a new URL rewriting rule. This example uses a rule called AdminRedirect.
using System;
using System.Net;
using Microsoft.AspNetCore.Rewrite;
using Microsoft.Extensions.Configuration;
using Microsoft.Net.Http.Headers;
public class AdminRedirect : IRule
{
private readonly string adminUrl;
public AdminRedirect(IConfiguration configuration)
{
// Retrieves the 'AdministrationUrl' application setting from the application's configuration providers (e.g., appsettings.json)
adminUrl = configuration["AdministrationUrl"] ?? String.Empty;
}
public void ApplyRule(RewriteContext context)
{
if (String.IsNullOrEmpty(adminUrl))
{
return;
}
var request = context.HttpContext.Request;
// Redirects requests leading to '~/admin' to the URL specified in the 'AdministrationUrl' setting
// For example: https://administration.mydomain.com
if (request.Path.Value.TrimEnd('/').Equals("/admin", StringComparison.OrdinalIgnoreCase))
{
var response = context.HttpContext.Response;
response.StatusCode = (int)HttpStatusCode.MovedPermanently;
response.Headers[HeaderNames.Location] = adminUrl;
context.Result = RuleResult.EndResponse;
}
}
}Add the URL of the site's corresponding administration application under the AdministrationUrl settings key. You can place the key into any configuration provider (opens in a new tab) used by your application (e.g., appsettings.json).
{
...
"AdministrationUrl": "administration.mydomain.com",
...
}Add the create rule to the collection of URL rewriting rules used by the middleware
The rewrite rule requires the IConfiguration provider to retrieve the URL of the administration interface from application settings. You may need to extend the signature of the Configure method with the IConfiguration parameter. This ensures the IConfiguration provider is available (provided via dependency injection) during application initialization.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IConfiguration configuration)
{
...
app.UseRewriter(new RewriteOptions()
.Add(new AdminRedirect(configuration)));
` ...
app.UseRouting();
...
}Compile your project.
The redirection rule is now registered and ready. Requesting ~/admin redirects the request to the URL specified by the AdministrationUrl setting. You can modify both the path under which the redirection occurs and the name of the setting key to suit your needs.