Cách thiết lập Mod_Rewrite

Máy chủ web Apache là một trong những khối xây dựng chính của Internet, phục vụ các trang web và ứng dụng. Đó là một hệ thống phức tạp với nhiều tùy chọn và một trong những tùy chọn quan trọng nhất là Mô-đun Viết lại, hay gọi tắt là “mod_rewrite”. Trong bài viết này, chúng ta sẽ xem xét cách sử dụng mod_rewrite, sau đó khám phá cách thiết lập mod_rewrite trên trang web dựa trên Apache của riêng bạn.

Mục đích của mô-đun này là viết lại các URL theo nhiều cách hữu ích khác nhau. Điều này có nghĩa là khi người dùng đến trang web của bạn qua một URL (bằng cách nhập hoặc chọn liên kết chứa URL đó), họ sẽ “kết thúc” trên một URL khác. Có một số lý do bạn có thể muốn làm điều này.

Chuyển hướng người dùng

Bạn có thể sử dụng mod_rewrite để hướng người dùng từ các trang cũ hơn, lỗi thời vẫn có thể xuất hiện trong kết quả tìm kiếm đến các trang mới hơn, cập nhật hơn. Ví dụ: giả sử bạn có một trang tại https://www.mysite.com/review2015; nếu ai đó xem đây là một liên kết và chọn nó, bạn có thể sử dụng quy tắc viết lại để hướng họ đến http://www.mysite.com/review2019.

URL dễ nhớ hơn

Chắc hẳn bạn đã từng thấy các liên kết liên quan đến thương mại điện tử có URL như https://www.thestore.net/3d78654954c29ace998658. Các nhà phát triển sử dụng các nhãn như thế này để đảm bảo các mặt hàng có số nhận dạng duy nhất, nhưng đối với các loại không chuyên về công nghệ thì rất khó nhớ.

May mắn thay, quy tắc viết lại có thể giúp bạn công khai một URL đẹp, chẳng hạn như https://www.thestore.net/notebooks/spiral/3-subject-spiral/, khi được theo dõi, sẽ dẫn khách truy cập đến một địa chỉ có URL xấu xí.

Tên trang duy nhất

Trong những ngày đầu của Web, người ta thường thấy tên thực của các tệp trang khi bạn truy cập một trang web. Ví dụ: trang “Giới thiệu” của trang web có thể là “http://www.someguys.org/about.html.”

Nhưng có một vài lý do khiến bạn không còn thấy những thứ này nhiều nữa. Đầu tiên là nhiều trang web được điều hành bởi hệ thống quản lý nội dung, hệ thống này chỉ có một số tệp trang thực tế. Phần còn lại của nội dung được thêm động khi trang được phục vụ, do đó, tất cả các trang có thể giống như chúng có cùng một URL, chẳng hạn như “http://www.someguys.org/index.php.” Viết lại URL cho phép bạn có giao diện của các trang riêng biệt này, trong khi vẫn sử dụng CMS động để quản lý trang web của mình.

URL dễ hiểu hơn

Công cụ tìm kiếm xếp hạng các trang cao hơn khi chúng có URL dễ hiểu. Điều này có nghĩa là sẽ có lợi cho các trang web có URL như “https://www.thecompany.com/services/consulting” thay vì “https://www.thecompany.com/index.php?section=services&page=consulting,” vì phần cuối trông giống mã hơn là URL.

Việc viết lại đảm bảo rằng bạn luôn thể hiện tốt nhất về phía trước, từ khía cạnh URL.

Sử dụng viết lại URL trên Apache yêu cầu hai thành phần chính:

  • Kích hoạt mô-đun viết lại thực tế trong Apache
  • Liệt kê các quy tắc viết lại cần thiết trong tệp .htaccess.

Mặc dù việc sử dụng để viết lại URL áp dụng như nhau cho các máy chủ web khác như IIS hoặc nginx, mod_rewrite và các phương pháp bên dưới sẽ chỉ áp dụng cho Apache.

Kích hoạt chức năng viết lại trong Apache

Trước tiên, bạn cần bật chức năng viết lại trong bản cài đặt Apache của mình.

  1. Bạn sẽ cần tìm vị trí của tệp cấu hình Apache của mình. Điều này sẽ phụ thuộc vào trình cài đặt bạn đã sử dụng.

    • Trên Windows, bạn nên tìm thư mục có tên “/conf” trong thư mục cài đặt Apache.
    • Trên trình cài đặt XAMPP phổ biến của macOS, nó nằm trong /Applications/XAMPP/xamppfiles/apache2/conf.
    • Trên Linux, nó sẽ xuất hiện trong thư mục /etc/apache2. Trong mọi trường hợp, bạn đang tìm tệp có tên “httpd.conf”, “http.conf” hoặc “apache2.conf”, vì vậy bạn cũng có thể sử dụng tính năng tìm kiếm của hệ điều hành để tìm những tệp này.
  2. Mở tệp cấu hình trong trình soạn thảo văn bản, chẳng hạn như Notepad của Windows hoặc TextEdit trên macOS.

  3. Tìm dòng “#LoadModule rewrite_module modules/mod_rewrite.so” và xóa thẻ bắt đầu bằng # ở đầu. Điều này biểu thị một nhận xét, nghĩa là khi nó ở đó, máy chủ Apache sẽ bỏ qua mọi thứ trên dòng đó. Xóa thẻ bắt đầu bằng # và lần sau Apache sẽ thực thi dòng đó khi khởi động.

  4. Lưu tệp cấu hình và khởi động lại máy chủ Apache.

  5. Ngoài ra, trên một số phiên bản Linux, bạn sẽ thấy một số thư mục như “/etc/apache2/mods-available” và “/etc/apache2/mods-enabled.” Chúng chứa các bit của tệp cấu hình được đặt cùng nhau một cách linh hoạt. Trong trường hợp này, bạn có thể chạy các lệnh sau để bật mô-đun viết lại trước, sau đó khởi động lại máy chủ Apache:

    sudo a2enmod viết lại
    systemctl khởi động lại apache2
  6. Bây giờ máy chủ Apache của bạn đã sẵn sàng viết lại các URL cho bạn. Chỉ bây giờ bạn cần cho nó biết cái nào cần viết lại và trong hoàn cảnh nào.

Bạn sẽ cần xác định các quy tắc cho mod_rewrite bằng ngôn ngữ biểu thức chính quy. May mắn thay, có một số trợ giúp có sẵn. Đối với một lần viết lại nhất định mà bạn muốn kích hoạt, bạn có thể sử dụng một công cụ như trình tạo quy tắc của VisioSpark.

  1. Nhập URL bạn muốn viết lại từ đó, tức là URL mà người dùng sẽ nhập, trong trường Từ:.

  2. Nhập URL bạn muốn viết lại, tức là URL mà người dùng sẽ kết thúc, trong trường Đến:.

    Cách thiết lập Mod_RewriteCách thiết lập Mod_Rewrite
  3. Chọn điều khiển Captcha, sau đó chọn Go . Sau đó, trình tạo sẽ cung cấp kết quả bắt đầu bằng “RewriteRule.

    Nếu bạn tình cờ tìm thấy một trình tạo khác, các bước này có thể hơi khác một chút, nhưng hy vọng là trong cùng một sân chơi bóng chày.

Vì vậy, điều này thật tuyệt, một cách chỉ cần nhấp chuột để tạo các quy tắc này. Nhưng bạn đặt chúng ở đâu?

Để sử dụng các quy tắc trên một trang web, bạn cần tạo một tệp có tên “.htaccess” trong thư mục gốc của trang web. Việc lưu trữ các tệp cho một trang web cụ thể phần nào phụ thuộc vào nền tảng, nhưng bạn cần phải tìm ra điều đó để triển khai trang web của mình ở đó ngay từ đầu.

Có thể đã có một tệp có tên đó. Nếu vậy, tuyệt vời! Bạn có thể chỉ cần thêm các dòng của mình vào tệp đó.

  1. Tạo một tệp văn bản mới có tên ” .htaccess ” trong thư mục gốc của trang web của bạn.

  2. Trong dòng đầu tiên, nhập mã dưới đây. Điều này cho máy chủ biết bạn muốn kích hoạt tính năng viết lại cho trang web hiện tại.

    RewriteEngine bật
  3. Tiếp theo, thêm từng dòng bạn đã tạo bằng trình tạo. Phần đầu của tệp của chúng tôi sẽ trông như thế này:

    RewriteEngine bật
    RewriteRule ^notebooks/spiral/3-subject-spiral/$ /3d78654954c29ace998658?&%{QUERY_STRING}
  4. Như với bất kỳ thay đổi cấu hình Apache nào, bạn nên khởi động lại máy chủ.

Sử dụng chức năng mod_rewrite trên Apache chắc chắn cần một số nỗ lực. Bạn phải loay hoay với các tệp cấu hình dựa trên văn bản, tìm ra cách đưa các biểu thức chính quy rất phức tạp vào các tệp đó và biết cách dừng và khởi động lại dịch vụ theo cách thủ công. Nó có thể sẽ yêu cầu nhiều lần thử và sai trước khi bạn nhận được thứ gì đó không gây ra lỗi và hoạt động bình thường.

Điều đó nói rằng, một khi bạn hiểu rõ về nó, bạn sẽ nhận được một số lợi ích to lớn từ mod_rewrite. Khách truy cập của bạn sẽ có thể nhớ các URL của bạn tốt hơn và xếp hạng của bạn trên Google có thể sẽ được cải thiện. Rốt cuộc, “các URL đẹp” không chỉ để trưng bày. Chúng cũng có chức năng.

Đọc Thêm:  6 tài nguyên học viết mã trực tuyến tốt nhất

Viết một bình luận