Hướng dẫn kích hoạt mod_rewrite Apache trên CentOS và Ubuntu

712

Kích hoạt mod_rewrite Apache – Kích hoạt file .htaccess Apache. Chức năng rewrite URL của module mod_rewrite trên dịch vụ Apache được dùng để xử lý các URL request HTTP truy cập. Module này là một trong những module mặc định của Web Server Apache. Với module này người quản trị có thể quyết định đường dẫn URL của request HTTP sẽ được xử lý ra sao như : chuyển hướng truy cập, từ chối request, cung cấp file cụ thể,… Thường bạn sẽ dễ dàng gặp tình huống này khi bạn truy cập website với một URL cụ thể nhưng bị web server chuyển hướng sang nội dung trang khác theo nhu cầu của họ.

kích hoạt mod_rewrite apache

Trên hệ thống server web Apache, thì việc cấu hình các rule rewrite dùng để xử lý URL request HTTP nằm ở file .htaccess Apache (file .htaccess không hoạt động với Nginx Web server). Nên ở bài viết này chính là giúp bạn kích hoạt module mod_rewrite trên Apache để nội dung cấu hình rule trong file .htaccess hoạt động được.

1. Kích hoạt mod_rewrite Apache

Mặc định module mod_rewrite thường được kích hoạt sẵn trên dịch vụ Apache. Vậy đầu tiên ta cần kiểm tra xem module mod_rewrite được kích hoạt trên Apache hay chưa?

+ CentOS/RHEL

+ Ubuntu/Debian

Nếu bạn thấy output lệnh httpd hoặc apache2ctl, với option ‘-M‘ là liệt kê các module đang được dịch vụ Apache load, có dòng ‘rewrite_module‘ tức là module mod_rewrite đã được Apache nạp lên bộ nhớ hệ thống để sử dụng rồi nhé.

Ơ thế giờ lỡ module không được Apache load thì sao ? Vậy thì mình sẽ cấu hình lại cho Apache load module rewrite thôi bằng các bước sau:

– Kiểm tra xem có thư viện module rewrite này sẵn trong thư mục chứa module của Apache hay không ? Nếu output ra kết quả ‘mod_rewrite.so‘ tức là có.

+ CentOS

– Tiếp đến ta sẽ tiến hành cấu hình cho dịch vụ Apache load đích danh đường dẫn module mod_rewrite.so . Hãy edit file cấu hình chính của Apache  (đường dẫn mặc định) ‘/etc/httpd/conf/httpd.conf‘ và tìm dòng có nội dung ‘LoadModule ….‘, bạn sẽ thấy các module khác đang được load dựa vào chỉ thị cấu hình là ‘LoadModule‘. Nhìn cái keyword cấu hình ta cũng hiểu được rồi đúng không nào ?!

Cú pháp cấu hình ‘LoadModule’

Chú thích:

  • ten_module : bạn phải chỉ định đúng tên module. Thường tên nó sẽ là viết ngược lại của tên module.so . ‘mod_rewrite‘ -> ‘rewrite_module‘.
  • duong_dan_module.so : bạn có thể chỉ định đường dẫn tuyệt đối, hoặc đường dẫn tương đối ở thư mục ./modules/ của thư mục cấu hình Apache.

– Sau đó ta save lại và tiến hành cho khởi động lại dịch vụ Apache. Kiểm tra lại nội dung list module như trên xem Apache đã load module mod_rewrite hay chưa nhé ?

+ CentOS 7

+ CentOS 6

+ Ubuntu 14.04

+ Ubuntu 16.04

2. Kích hoạt tính năng mod_rewrite cho file .htacces

Một khi mod_rewrite module đã được kích hoạt trên Web Server Apache, bạn tiếp tục kích hoạt chức năng URL rewrite trong các nội dung cấu hình của file .htaccess tại từng thư mục chứa source code vhost. File .htaccess cho phép bạn cấu hình các rule cho phép thay đổi nội dung đường URL mà không cần truy cập cấu hình server. Chính vì vậy mà file .htaccess khá quan trọng đối với web server và thường được sử dụng rất nhiều để chuyển tiếp các nội dung URL Web.

Ví dụ dưới đây là ta kích hoạt chức năng rewrite trong file .htaceess cho thư mục document root (/var/www/html/) mặc định của dịch vụ Apache. Nếu bạn cần kích hoạt cho các Vhost khác thì bạn cần chỉ định riêng ra cho nội dung của các Vhost đó.

Giờ ta cần edit file ‘/etc/httpd/conf/httpd.conf‘ và tìm dòng section cấu hình ‘<Directory /var/www/html>‘ . Chuyển giá trị ‘AllowOverride None‘ thành ‘AllowOverride All‘.

Nếu bạn kích hoạt mod_rewrite Apache cho từng vhost cụ thể thì có thể tham khảo sau.

Sau cùng thì bạn chỉ cần khởi động lại dịch vụ web Apache để chạy cấu hình mới. Như vậy bạn đã biết cách để kích hoạt mod_rewrite trên Apache Web Server (tương đương kích hoạt file .htaccess trên Apache) rồi phải không nào. Nếu có khó khăn gì đừng ngại comment bên dưới với Cuongquach.com nhé.

Nguồn: cuongquach.com
Tác giả: Quách Chí Cường

Đánh giá sao từ người đọc :
[ Tổng : 0 - Trung bình: 0 ]

LEAVE A REPLY