2010-08-03 38 views
21

Tôi đang cố gắng tạo lỗi 404 tùy chỉnh cho trang web của mình. Tôi đang thử nghiệm này bằng cách sử dụng XAMPP trên Windows.Các vấn đề về lỗi 404 tuỳ chỉnh với Apache

cấu trúc thư mục của tôi là như sau:

error\404page.html 
index.php 
.htaccess 

Nội dung của tập tin .htaccess của tôi là:

ErrorDocument 404 error\404page.html 

này tạo ra kết quả sau:

alt text http://i38.tinypic.com/24qk0fk.jpg

Tuy nhiên điều này không hiệu quả - có liên quan gì đến w ay slashes là hoặc làm thế nào tôi nên tham khảo các tài liệu lỗi?

tài liệu trang web nằm trong một thư mục con của gốc web nếu điều đó tạo ra bất kỳ sự khác biệt nào về cách tôi nên tham khảo?

Cảm ơn bạn đã nâng cao.

Khi tôi thay đổi các tập tin được

ErrorDocument 404 /error/404page.html 

Tôi nhận được thông báo lỗi sau đây mà không phải là những gì bên trong các tập tin html tôi đã liên kết - nhưng nó khác với những gì được liệt kê ở trên:

alt text http://i32.tinypic.com/kci5b7.jpg

+2

Bạn đã thử thay đổi dấu gạch chéo thành dấu gạch chéo? Không chắc chắn nếu Apache hỗ trợ dấu gạch chéo ngược. –

+0

LỗiDocument 404 /error/404page.html là gì bây giờ và điều này ném ngoại lệ 404 - tuy nhiên đây không phải là ngoại lệ trong tệp html mà tôi đã liên kết. – Malachi

Trả lời

53

Chỉ thị ErrorDocument, khi được cung cấp một đường dẫn URL địa phương, hy vọng con đường để có đủ điều kiện từ DocumentRoot. Trong trường hợp của bạn, điều này có nghĩa rằng con đường thực tế để các ErrorDocument

ErrorDocument 404 /JinPortfolio/error/404page.html 

Khi bạn sửa chữa nó trong thử thứ hai của bạn, lý do mà bạn nhìn thấy trang mà thay vào đó là bởi vì http://localhost/error/404page.html không tồn tại, vì thế mà có chút thông tin về là lỗi 404 khi định vị tài liệu xử lý lỗi.

+0

Chỉ cần khai báo trong htaccess? Tôi đã nhận được thông báo lỗi máy chủ! –

+0

Vâng, tôi sẽ không bao giờ có được nó. :(Tôi luôn gặp lỗi! – Hydro

11

.htaccess tệp bị tắt theo mặc định trong Apache những ngày này, do vấn đề về hiệu suất. Khi các tệp .htaccess được bật, máy chủ web phải kiểm tra nó trên mọi lần truy cập trong mọi thư mục con từ nơi nó nằm.

Chỉ cần tìm ra điều quan trọng cần lưu ý. Nếu bạn muốn bật file .htaccess dù sao, đây là một liên kết mà giải thích nó:

http://www.tildemark.com/enable-htaccess-on-apache/

1

Bất kỳ url nào bạn nhập làm trang 404 mặc định phải là tuyệt đối hoặc tương đối từ thư mục gốc: Đó là lý do tại sao một số sai lầm trong việc xử lý url của url như url của công cụ viết lại tương đối từ thư mục .htaccess nằm.

4

Thay vì thêm chúng vào tệp .htaccess của bạn, bạn có thể thêm chúng vào bất kỳ tệp lưu trữ ảo nào của mình.

<VirtualHost *:80> 

    DocumentRoot /var/www/mywebsite 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

    ErrorDocument 404 /error-pages/404.html 
    ErrorDocument 500 /error-pages/500.html 
    ErrorDocument 503 /error-pages/503.html 
    ErrorDocument 504 /error-pages/504.html 

</VirtualHost> 

đâu error-pages là một thư mục con trong thư mục mywebsite, chứa các trang lỗi tùy chỉnh. Hãy chắc chắn rằng bạn khởi động lại apache của bạn để xem các thay đổi của bạn.

$sudo /etc/init.d/apache2 reload 
Các vấn đề liên quan