2012-10-30 39 views
5

Chúng tôi có ứng dụng web nhiều bên thuê, nơi khách hàng có thể thiết lập tên miền tùy chỉnh cho trang web của họ.Chuyển hướng HTTP 404

Khi miền không hợp lệ được yêu cầu, chúng tôi cần hiển thị trang lỗi trên tên miền khác. Cách chính xác để xử lý điều này là gì? Tôi nghĩ có lẽ phát hành một 303 đến một trang trên trang web khác mà luôn luôn trả về 404. Điều này sẽ giữ cho công cụ tìm kiếm hạnh phúc?

+0

Để làm rõ những gì bạn đang cố gắng đạt được: hãy cho biết rằng không có khách hàng nào của bạn đã thêm www.example.com; nếu yêu cầu được đưa đến máy chủ web của bạn để truy cập www.example.com, bạn muốn yêu cầu đó được tự động chuyển hướng đến www.example2.com/notfound.htm? Tôi có hiểu điều đó một cách chính xác không? – Jesse

+0

Có bạn đã hiểu chính xác. –

+0

Nó có phải là một tên miền khác trong thanh địa chỉ không, hoặc nó có đủ để hiển thị thông báo lỗi thích hợp không? – PointedEars

Trả lời

2

Tôi vẫn đang cố xác định nhu cầu này. Vì không có nhiều thông tin được cung cấp cho lý do tại sao cần thiết. Có nhiều máy chủ cho phép người dùng tạo địa điểm cho chính họ. Khi bất kỳ lỗi nào xảy ra, nó chỉ đơn giản là liên kết đến 404 cục bộ. Vậy tại sao cần phải chuyển sang miền khác cho 404? Khi đặt tài liệu lỗi 404 với tên miền và tên miền phụ. 404 cục bộ được gọi cho tất cả chúng. Nó không chỉ 404 cho tên miền chính, trong khi rời khỏi các tên miền phụ không biết gì. Đối với việc cho phép người dùng thiết lập tên miền tùy chỉnh, tôi đoán đó là lỗi đánh máy. Và bạn có nghĩa là "tên miền phụ tùy chỉnh". Trừ khi đó là chính xác, và nó theo một cách nào đó để cho phép khách hàng mua các gói hosting từ bạn. Họ có thể bán lại cho khách hàng của mình. Nếu sau này là chính xác. Bạn sẽ chỉ cần thiết lập môi trường của họ một cách chính xác. Mặc dù tôi cho rằng bạn có nghĩa là miền phụ.

LỗiTài liệu 404 /404.html

Có một số cách tốt hơn để thực hiện việc bên dưới. Chỉ cần cung cấp nhanh nhất. Đối với mong muốn trả lại 404 đến tên miền khác, bạn vẫn có thể:

  • Trong .htaccess làm:

    ErrorDocument 404 /404.html 
    
  • Trong việc sử dụng 404.html địa phương:

    <meta http-equiv="refresh" content="0; url=http://example.com/"> 
    

Bạn có thể sử dụng các phương pháp khác.

0

Để giữ cho các công cụ tìm kiếm vui vẻ, hãy để cho 404 dường như là từ tên miền không hợp lệ bằng cách che dấu tên miền. Điều này sẽ ngăn việc tích lũy danh tiếng kém do có quá nhiều chuyển hướng theo thời gian. Chuyển hướng không thường xuyên đến tài liệu chuẩn là tốt vì điều đó có nghĩa là bạn đang thực hành DRY (Không lặp lại chính mình) bằng cách chuyển hướng đến IRI chuẩn mực đủ điều kiện cho nước tìm kiếm. Sử dụng meta noindex trên trang 404 để ngăn công cụ tìm kiếm ghi nhớ IRI tên miền tùy chỉnh không hợp lệ.

1

Trước tiên, hãy thử tìm ứng dụng trong bảng điều khiển trên máy chủ lưu trữ web của bạn, điều này sẽ cho phép bạn tạo trang lỗi. Nếu bạn đang sử dụng cPanel, ứng dụng này được đặt tên là Trang lỗi với tiêu đề Tiêu đề nâng cao. Sau khi tìm thấy ứng dụng này., Bây giờ tạo một tập tin của (Không tìm thấy) trang lỗi. Trong cPanel, có cụ thể “Nhắc URL”, “địa chỉ IP của khách”, “URL được yêu cầu”, “Server name”, “trình duyệt của khách”“Chuyển Status Code” thẻ cho tệp hỗ trợ SSI này và sau khi lưu trang lỗi 404, nó sẽ được lưu vào 404.shtml với phần mở rộng cho tệp được máy chủ web nhận dạng dưới dạng tệp HTML hỗ trợ SSI. Nếu chưa từng có Trang Lỗi ứng dụng.trong bảng điều khiển c của bạn, hãy thử tạo trang lỗi theo cách thủ công với tiện ích mở rộng .shtml nếu máy chủ của bạn được định cấu hình để cho phép điều này. Nếu không được phép hoặc nếu tệp không đọc được, bạn vẫn có thể sử dụng một tiện ích mở rộng khác, nhưng đối với máy chủ web, tệp đó không được nhận dạng dưới dạng tệp HTML hỗ trợ SSI.

Cách tốt nhất là viết lại và không chuyển hướng tất cả tên miền phụ trống, vào /404.shtml nhưng trước tiên, hãy đảm bảo rằng có công cụ viết lại trong tài khoản của bạn. Bây giờ chúng ta sẽ viết lại tất cả các tên miền phụ đó với mod_rewrite. Hãy thử tìm một tệp .htaccess trong trình quản lý tệp của bạn. Tệp đó thường được tìm thấy trong cùng một thư mục nơi trang index của bạn được đặt. Nếu không có tệp như vậy, bạn có thể tạo một tệp mới trong thư mục nơi đặt số index của bạn. Mã này phải ở đầu rất của nguồn rỗng .htaccess của bạn, và không loại bỏ nó trong khi thử nghiệm các bộ sau các điều kiện và quy định dưới đây sau này:

Options +FollowSymlinks 
RewriteEngine on 

Và cố gắng dán chỉ thị này dưới hai dòng mã trên:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
Rewrite ^(.*) /404.shtml 

Nếu các chỉ thị trên không làm việc, sau đó hãy thử như sau dưới đây:

RewriteCond %{REQUEST_URI} !-f 
RewriteCond %{REQUEST_URI} !-d 
Rewrite ^(.*) /404.shtml 

Tuy nhiên, nếu bạn không muốn redirec t các tên miền phụ trống đó, chỉ cần thêm cờ [R] sau đuôi tệp của quy tắc, chỉ cần không quên một dấu cách trước cờ.

Các vấn đề liên quan