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?
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:
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.conf
bằ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 Modules
phần kiểm tra nếu mod_rewrite
có hay không. Nếu nó ở đó thì nó được kích hoạt.
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>
apache2.conf
và khởi động lạiapache
404 đã 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_rewrite
mô-đ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ạtmod-rewrite
mô-đ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.conf
và 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à đủ?