• Alo88.COM! là Blog cá nhân nhằm chia sẻ những kiến thức, kinh nghiệm đã làm trong các dự án về các lĩnh vực: Lập trình website, quản trị mạng, web services, server cloud, Amazon Web Services, thiết kế đồ họa, domain-hosting.
    Hy vọng sẽ hữu ích cho các bạn

Cách kích hoạt mod_rewrite trong Apache trên centos 7

mediavn

Administrator
Staff member
#1
Bài viết này sẽ hướng dẫn cho các bạn cách bật chức năng mod_rewrite trong Apache trên centos nói chung và cụ thể mình thao tác trên centos 7.
về mod_rewrite mình sẽ không bàn thêm nữa vì nó quá tuyệt vời giúp chúng ta xử lý mọi vấn đề về link, tối ưu hóa link phục vụ cho việc SEO website rất tốt trên các công cụ tìm kiếm hiện nay.
Các bước thực hiện như sau:

Bước 1: Kiểm tra xem module đã tồn tại chưa?

Trước khi kích hoạt mod_rewrite bạn chắc chắn là đã thực hiện bước cài đặt server Apache và kiểm tra xem modules này đã được bật trong file httpd chưa?
Chạy lệnh sau để kiểm tra:

# httpd -V
Kết quả sẽ được hiển thị như dưới:
[Wed Jan 10 07:17:29.361768 2018] [so:warn] [pid 23181] AH01574: module rewrite_ module is already loaded, skipping
Server version: Apache/2.4.6 (CentOS)
Server built: Oct 19 2017 20:39:16
Server's Module Magic Number: 20120211:24
Server loaded: APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/run/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Từ kết quả trên, chúng ta có thể tìm ra đường dẫn của file cấu hình apache (httpd.conf). Đường dẫn là: /etc/httpd/conf/httpd.conf

Để kiểm tra xem module này đã được bật chưa chúng ta chạy lệnh dưới đây:

# ls /etc/httpd/modules | grep mod_rewrite
Nếu module đã được bật bạn sẽ thấy kết quả của dòng lệnh trên như sau:

mod_rewrite.so
Kết quả hiển thị được như trên là rất hiếm nếu server này do bạn cài đặt từ đầu.
Nếu không hiển thị ra kết quả như trên bạn cần phải cài đặt mod_rewrite như sau:

Bước 2: Kiểm tra xem module đã được kích hoạt chưa?
Để kiểm tra bạn thực hiện lệnh sau:

# grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
Nếu kết quả hiện như dưới đây, có nghĩa là module đã được bật

LoadModule rewrite_module modules/mod_rewrite.so
Nếu kết quả hiện như dưới, hãy vào file httpd.conf (/etc/httpd/conf/httpd.conf) để xóa bỏ dấu # phía trước sau đó lưu file lại và thoát.

#LoadModule rewrite_module modules/mod_rewrite.so
Trường hợp bạn không nhận được bất kỳ kết quả nào phía trên bạn vào /etc/httpd/conf/httpd.conf và thêm dòng sau vào phía cuối cùng của file httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so
Bước 3: Cấu hình file httpd.conf

Trước khi cấu hình bạn cần kiểm tra xem file httpd.conf đã được cấu hình chuẩn chưa bằng dòng lệnh sau:

# grep -i AllowOverride /etc/httpd/conf/httpd.conf

Kết quả:
AllowOverride None
# AllowOverride controls what directives may be placed in .htaccess files.
AllowOverride None
# AllowOverride FileInfo AuthConfig Limit
# for additional configuration directives. See also the AllowOverride
AllowOverride None
AllowOverride None
AllowOverride None
Mở file httpd.conf theo đường dẫn /etc/httpd/conf/httpd.conf tìm tới đoạn <Directory /var/www/html>
và thay đổi từ None thành All. Sau đó lưu lại và thoát file.

Ok, như vậy là server apache trong centos đã được bật mod_rewrite. Bây giờ bạn hãy cấu hình file .htaccess trong thư mục gốc website của bạn để bật chức năng SEO cho website.

Bạn chưa hiểu hãy để lại comment phía dưới tôi sẽ hướng dẫn cho bạn.
 

Bình Luận