2024-04-30 分類: 網(wǎng)站建設(shè)
最近有個客戶要求開發(fā)一套短網(wǎng)址網(wǎng)站,小編現(xiàn)在都使用.net core進(jìn)行網(wǎng)站開發(fā)了,以是厘厘思路,想想使用.net core 的中間件應(yīng)該很容易實現(xiàn)。
1. 構(gòu)建一個中間件,監(jiān)測網(wǎng)站的響應(yīng)狀態(tài),代碼如下: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 + "無匹配網(wǎng)址");
}
}
}
}
}
}
2.在startup.cs中的 Configure(IApplicationBuilder app)中添加引用 該 中間件app.UseWatchNoFound();
這樣該中間件就會響應(yīng)短網(wǎng)址的六位字符串,如果匹配則重定向至對應(yīng)的網(wǎng)址。
具體的短網(wǎng)址生成,我想就很簡單,這里就不多說了,如果有需要,大家可以咨詢我。
平臺界面
輸入網(wǎng)址
自動生成當(dāng)前域名的短網(wǎng)址
后臺管理
非常感謝您讀完創(chuàng)新互聯(lián)的這篇文章:"net的網(wǎng)站建設(shè)(寧波網(wǎng)站建設(shè))",僅為提供更多信息供用戶參考使用或為學(xué)習(xí)交流的方便。我們公司提供:網(wǎng)站建設(shè)、網(wǎng)站制作、官網(wǎng)建設(shè)、SEO優(yōu)化、小程序制作等服務(wù),歡迎聯(lián)系我們提供您的需求。
網(wǎng)頁題目:net的網(wǎng)站建設(shè)(寧波網(wǎng)站建設(shè))
標(biāo)題網(wǎng)址:http://redsoil1982.com.cn/news13/326563.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、小程序開發(fā)、外貿(mào)建站、移動網(wǎng)站建設(shè)、Google、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
標(biāo)簽2024-04-29