Tôi đã đẩy tệp .htaccess của mình sang máy chủ sản xuất, nhưng chúng không hoạt động. Khởi động lại có phải là bước tiếp theo không hay tôi nên kiểm tra thứ gì khác.
Tôi đã đẩy tệp .htaccess của mình sang máy chủ sản xuất, nhưng chúng không hoạt động. Khởi động lại có phải là bước tiếp theo không hay tôi nên kiểm tra thứ gì khác.
Câu trả lời:
Không cần khởi động lại đối với các thay đổi đối với .htaccess. Có gì đó không ổn.
Đảm bảo rằng .htaccess của bạn bao gồm câu lệnh
RewriteEngine bật
là bắt buộc ngay cả khi nó cũng có trong httpd.conf. Cũng kiểm tra xem .htaccess có thể đọc được bằng quy trình httpd hay không.
Kiểm tra error_log - nó sẽ cho bạn biết bất kỳ lỗi nào trong .htaccess nếu nó đang được sử dụng. Đặt một lỗi cú pháp cố ý trong .htaccess là một cách kiểm tra tốt để đảm bảo tệp đang được sử dụng - bạn sẽ gặp lỗi 500 trên bất kỳ trang nào trong cùng thư mục.
Cuối cùng, bạn có thể bật nhật ký ghi lại bằng các lệnh như sau trong httpd.conf của mình:
RewriteLog "nhật ký / rewritelog"
RewriteLogLevel 7
Do đó, tệp nhật ký được tạo sẽ cung cấp cho bạn chi tiết xương máu về quy tắc viết lại nào phù hợp và cách chúng được xử lý.
Không :
Apache cho phép quản lý cấu hình phi tập trung thông qua các tệp đặc biệt được đặt bên trong cây web. Các tệp đặc biệt thường được gọi
.htaccess
, nhưng bất kỳ tên nào cũng có thể được chỉ định trong chỉ thị AccessFileName ... Vì tệp .htaccess được đọc theo mọi yêu cầu, các thay đổi được thực hiện trong các tệp này có hiệu lực ngay lập tức ...
Từ tài liệu apache: Thông thường nhất, vấn đề là AllowOverride không được đặt sao cho các lệnh cấu hình của bạn đang được thực hiện. Đảm bảo rằng bạn không có AllowOverride None có hiệu lực đối với phạm vi tệp được đề cập. Một thử nghiệm tốt cho việc này là bỏ rác vào tệp .htaccess của bạn và tải lại. Nếu lỗi máy chủ không được tạo ra, thì bạn gần như chắc chắn có AllowOverride Không có hiệu lực.
Tôi gặp vấn đề tương tự và có vẻ như bài đăng của PiedPiper về AllowOverride hữu ích nhất. Kiểm tra tệp httpd.conf của bạn cho "AllowOverride" và đảm bảo rằng tệp được đặt thành Tất cả.
Trong trường hợp khởi động lại .htaccess là không cần thiết nếu nó không hoạt động, các lý do có thể bao gồm.
AllowOverride Có thể không được đặt mà người dùng có thể đặt bên trong httpd.conf hoặc có thể phải liên hệ với quản trị viên máy chủ.
Kiểm tra tên tệp của .htaccess, nó phải là .htaccess chứ không phải htaccess.txt, xem tại đây để biết hướng dẫn cách tạo.
Hãy thử sử dụng Options -Indexes
hoặc deny all
một loại chỉ thị đơn giản để xem nó có hoạt động hay không.
xóa bộ nhớ cache của trình duyệt mọi lúc nếu có quy tắc cho chuyển hướng hoặc tương tự nếu chuyển hướng trước đó được lưu trong bộ nhớ cache, nó sẽ xuất hiện như thể mọi thứ không hoạt động.
LogLevel alert rewrite:trace7
. Sau khi khởi động lại apache , bạn sẽ thấy các dấu vết trong nhật ký lỗi. Hy vọng điều đó sẽ hữu ích. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging