mod_rewrite được bật, nhưng không hoạt động


17

Tôi đang cố gắng để thiết lập một thư viện định tuyến PHP. Họ đưa ra ví dụ này cho tệp .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

Tôi không thể làm việc này được, vì vậy tôi đã thử kích hoạt mod_rewrite, nhưng thông báo "Đã viết lại mô-đun".

Tại sao nó không hoạt động đúng? Cảm ơn! Tôi đang chạy Ubuntu Precise 12.04 và apache2.2.22. (Đã kiểm tra mọi cập nhật)

EDIT: Một vài chi tiết nữa, đó là bản dựng mơ hồ PuPHPet, nên viết lại.

Câu trả lời:


33

Bạn cần cho phép ghi đè.

<Directory "/path/to/document/root/">
  AllowOverride All
  Allow from All
</Directory>

5
Điều này là không cần thiết cho phép. Chỉ AllowOverridecần thiết cho cấu hình trong câu hỏi. Allow from Allkhông liên quan gì đến câu hỏi và có thể không phù hợp với môi trường của @ Randomdev.
Đánh dấu

1
<Directory "/path/to/document/root/">Tôi quên thay đổi /path/to/document/root/để root dự án của tôi. Cảm ơn!
Abhishek

16

Trước hết, hãy đặt cấu hình httpd của bạn thành cái này (đường dẫn có thể khác với nhau. Trong Ubuntu của tôi, nó được đặt ở / etc / apache2 / site-Available / default):

DocumentRoot /var/www

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

Sau đó, bạn nên kích hoạt mod_rewrite bằng lệnh này:

sudo a2enmod rewrite

Cái cuối cùng, khởi động lại dịch vụ apache của bạn :

sudo service apache2 restart

Để đảm bảo điều đó, bạn có thể kiểm tra lại từ phpinfo trong Cấu hình> apache2handler> Các mô-đun đã tải phải được viết mod_rewritevà điều đó có nghĩa là mod_rewrite được bật.


Điều này có nên trong một yếu tố máy chủ ảo?
jjxtra

Bạn có thể xem một số ví dụ trong Ví dụ về Máy chủ ảo Apache
biến thái

1

Tôi đã có vấn đề tương tự, nhưng các câu trả lời khác không giúp tôi. Dòng này khi bắt đầu .htaccessgiải quyết vấn đề của tôi:

Options +FollowSymLinks -MultiViews
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.