Tạo file robots TXT trong ASP.NET Core

 9/1/2019 |  Admin   2102 lượt xem

(netcore.vn) - Sau đây, .NET Core VN giới thiệu cách tạo file robots TXT trong ASP.NET Core và quản lý nó trong Admin Page.

Trong bài này, mình sẽ chia sẻ cho các bạn cách mình quản lý file robots.txt trong ASP.NET Core, đọc file robots.txt cho web.

Trước tiên, mình xin giới thiệu về file robots.txt trong web. Robots.txt đơn giản là 1 file txt giúp cho những con bot của công cụ tìm kiếm như Google có thể dễ dàng index dữ liệu của website mình hơn và người quản trị có thể quản lý những phần cho bot index hoặc không index từ những syntax được khai báo trong file. Nó liên quan nhiều đến SEO nếu anh em nào có tìm hiểu.

Tiếp theo, mình sẽ tạo 1 file robots.txt ở ngoài thư mục source .NET Core Việt Nam của mình. Sau đó mình thêm 1 function để khai báo về file robots để có thể hiện thị trên URL như ví dụ domain.com/robots.txt.

[HttpGet("robots.txt")]
        public IActionResult Robots()
        {
            Response.ContentType = "text/plain";
            var path = System.IO.Path.Combine(_appEnvironment.ContentRootPath, $"robots.txt");

            var result = new StringBuilder();

            string[] lines = System.IO.File.ReadAllLines(path);

            foreach (string line in lines)
            {
                result.Append(line);
                result.Append(Environment.NewLine);
            }
            ViewBag.Robots = result.ToString();
            return View();
        }

Sao đó mình tạo 1 Razor view như bên dưới, để đọc nội dung file robots ra ngoài view với không có layout kế thừa.

@{
    Layout = null;
}
@Html.Raw(ViewBag.Robots)

Vậy là mình đã định nghĩa xong 1 page robots cần thiết.

Nhưng mình muốn quản lý luôn file robots đó trong phần Admin để cho tiện lợi hơn thông qua thư viện System.IO để đọc và ghi file. Mình sử dụng API để làm nhé.

#region Robots
        [HttpGet("robots")]
        public IActionResult ReadFileRobots()
        {
            var path = System.IO.Path.Combine(_appEnvironment.ContentRootPath, $"robots.txt");

            var result = new StringBuilder();

            string[] lines = IO.File.ReadAllLines(path);

            foreach (string line in lines)
            {
                result.Append(line);
                result.Append(Environment.NewLine);
            }

            _logger.LogInformation(nameof(ReadFileRobots), path);

            return Ok(result.ToString());
        }

        [HttpPost("robots")]
        public IActionResult WriteFileRobots([FromBody] RobotsModel model)
        {
            var path = System.IO.Path.Combine(_appEnvironment.ContentRootPath, $"robots.txt");

            var response = new ResponseResult();

            if (model == null || string.IsNullOrEmpty(model.Text))
            {
                ModelState.AddModelError("Text", $"File robots rỗng!");
                var fails = FailValidations(ModelState, false, "Invalid!");
                return BadRequest(JsonResult(fails));
            }

            var file = IO.Path.Combine(path);

            if (!IO.File.Exists(file))
            {
                ModelState.AddModelError("Text", $"{file} không tìm thấy!");
                var fails = FailValidations(ModelState, false, "Invalid!");
                return BadRequest(fails);
            }

            IO.File.WriteAllText(file, model.Text);

            response.Status = true;
            response.Message = "Write File Robots Successfully!";
            _logger.LogInformation(nameof(WriteFileRobots), path);

            return Ok(response);
        }
        #endregion

Sau đó mình trả lên UI trong Admin Page sử dụng Html và Vue JS.

Anh em xem tiếp về ASP.NET Core nâng cao nhé nếu thấy hay.

liên quan

Tạo JWT Token với RSA private/public key trong .NET Core  144

 12/24/2021

Tạo JWT Token với RSA private/public key trong .NET Core

Xem chi tiết 

Sử dung Google Translate APIs trong NET Core  509

 6/25/2021

Sử dung Google Translate APIs trong NET Core

Xem chi tiết 

Tạo và gửi mẫu E-mail cho marketing trong ASP.NET Core  505

 6/16/2021

Tạo và gửi mẫu E-mail cho marketing trong ASP.NET Core

Xem chi tiết 

Tạo trang quên mật khẩu trong ASP.NET Core  559

 6/15/2021

Tạo trang quên mật khẩu trong ASP.NET Core

Xem chi tiết 

Chèn watermark vào hình ảnh upload trong ASP.NET Core  441

 5/26/2021

Chèn watermark vào hình ảnh upload trong ASP.NET Core

Xem chi tiết 

Tạo 1 worker service trong .NET Core 3.1 từ A đến Z  1087

 3/11/2021

Tạo 1 worker service trong .NET Core 3.1 từ A đến Z

Xem chi tiết 

Cách tạo chức năng Remember me trong login của ASP.NET Core  1200

 2/25/2021

Cách tạo chức năng Remember me trong login của ASP.NET Core

Xem chi tiết 

Sử dụng Magick.NET để chuyển đổi file định dạng .heic thành .jpg trong dự án ASP.NET Core  538

 2/9/2021

Sử dụng Magick.NET để chuyển đổi file định dạng .heic thành .jpg trong dự án ASP.NET Core

Xem chi tiết 

Cách sử dụng Regex hiệu quả trong .NET 5  739

 2/9/2021

Cách sử dụng Regex hiệu quả trong .NET 5

Xem chi tiết 

Tìm hiểu sâu hơn về Swagger trong ASP.NET Core  905

 2/9/2021

Tìm hiểu sâu hơn về Swagger trong ASP.NET Core

Xem chi tiết 
Like Fanpage Để Ủng Hộ Chúng Tôi Duy Trì Website