Cách bật mod_rewrite cho máy chủ ảo


8

Quy tắc mod_rewrite không hoạt động trên máy chủ ảo. Tôi đã muốn điều này cho cakephp.

Có cài đặt để thêm vào tệp máy chủ ảo không?

Câu trả lời:


21

Nếu bạn đang sử dụng phiên bản apache mới nhất 2.4+ thì đây là quá trình kích hoạt mod_rewrite.

Đi đến etc/apache2/
Mở apache2.confbằng trình soạn thảo văn bản yêu thích của bạn.
Thay đổi

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

đến

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Sau đó lưu nó. Hãy nhớ rằng bạn nên có quyền root để chỉnh sửa và lưu tệp này.
Bây giờ khởi động lại apache.

service apache2 reload

Quá trình này sẽ kích hoạt mod_rewrite cho máy chủ apache bao gồm máy chủ ảo.

Bạn cũng có thể kiểm tra xem nó đã được kích hoạt hay chưa. Tạo một tập lệnh php

<?php    
phpinfo();    
?>

Tải nó từ máy chủ. Dưới Loaded Modulesphần kiểm tra nếu mod_rewritecó hay không. Nếu nó ở đó thì nó được kích hoạt.


Trước khi tôi sử dụng tùy chọn này, tất cả các bản viết lại của tôi đã kết thúc ở 404, tuy nhiên sau khi cập nhật apache2.confvà khởi động lại apache404 đã biến mất nhưng tất cả các trang đã quay trở lại trang chủ! phpinfo()cũng không có mod_rewritemô-đun kích hoạt. Sau đó chạy CLI commnd (như được đề xuất bởi Lonston bên dưới), mọi thứ đều trở nên vàng! Tại sao giải pháp này không kích hoạt mod-rewritemô-đun cho tôi mà lại chấp thuận CLI? Đây có phải là sự kết hợp giữa sửa đổi .confvà chạy lệnh CLI lần lượt để kích hoạt mô-đun hoặc một trong hai điều này thực sự là đủ?
Niladri Sarkar

6

Cho phép viết lại bằng cách sử dụng

# sudo a2enmod rewrite

Sau đó khởi động lại apcahe2 bằng cách sử dụng

# service apache2 restart

Kích hoạt trong Virtualhost bằng cách thêm

AllowOverride FileInfo

Sau đó khởi động lại apcahe2 bằng cách sử dụng

# service apache2 restart

ví dụ :

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

Điều này làm việc cho tôi quá!
Niladri Sarkar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.