2024-04-30 分類: 網站建設
最近有個客戶要求開發一套短網址網站,小編現在都使用.net core進行網站開發了,以是厘厘思路,想想使用.net core 的中間件應該很容易實現。
1. 構建一個中間件,監測網站的響應狀態,代碼如下:using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using NetCoreTFCMS.Domain.DbModel;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using TianFeng.FrameworkCore.DapperEx;
namespace NetCoreTFCMS.MiddleWare
{
public static class RequestIPExtensions
{
public static IApplicationBuilder UseWatchNoFound(this IApplicationBuilder builder)
{
return builder.UseMiddleware<WatchNoFoundMiddleWare>();
}
}
public class WatchNoFoundMiddleWare
{
private readonly RequestDelegate _next;
private readonly ILogger logger;
public WatchNoFoundMiddleWare(RequestDelegate next, ILoggerFactory loggerFactory)
{
_next = next;
logger = loggerFactory.CreateLogger<WatchNoFoundMiddleWare>();
}
public async Task Invoke(HttpContext context)
{
await _next.Invoke(context);
var path = context.Request.Path.ToString().Trim();
if (path.LastIndexOf("/") == 0)
{
var salt = path.Replace("/", "");
if (Regex.IsMatch(salt, @"^[a-zA-Z0-9]{6}$"))
{
var db = (IDbService)context.RequestServices.GetService(typeof(IDbService));
var model = await db.GetModelAsync<Link>(new { Salt = salt });
if (model != null)
{
if (!Regex.IsMatch(model.SiteUrl, "(file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://", RegexOptions.IgnoreCase))
{
model.SiteUrl = "http://" + model.SiteUrl;
}
context.Response.Redirect(model.SiteUrl, true);
}
else
{
logger.LogInformation(salt + "無匹配網址");
}
}
}
}
}
}
2.在startup.cs中的 Configure(IApplicationBuilder app)中添加引用 該 中間件app.UseWatchNoFound();
這樣該中間件就會響應短網址的六位字符串,如果匹配則重定向至對應的網址。
具體的短網址生成,我想就很簡單,這里就不多說了,如果有需要,大家可以咨詢我。
平臺界面
輸入網址
自動生成當前域名的短網址
后臺管理
非常感謝您讀完創新互聯的這篇文章:"net的網站建設(寧波網站建設)",僅為提供更多信息供用戶參考使用或為學習交流的方便。我們公司提供:網站建設、網站制作、官網建設、SEO優化、小程序制作等服務,歡迎聯系我們提供您的需求。
網頁題目:net的網站建設(寧波網站建設)
標題網址:http://vcdvsql.cn/news13/326563.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、小程序開發、外貿建站、移動網站建設、Google、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容
標簽2024-04-29