There can a number of idea to prevent Distributed Denial of Service attack on website . Here i am sharing a basic idea that i use now a days to mitigate DDOS from malicious web crawler .As I noticed when a malicious crawler access web site we found log entry by a particular User Agent in access-log. What i do is rewrite request from such User Agent to Forbidden messages using Rewrite module
RewriteCond %{HTTP_USER_AGENT} Malicious_User_Agent [NC]
RewriteRule .* - [F,L]
RewriteCond %{HTTP_USER_AGENT} Malicious_User_Agent [NC]
RewriteRule .* - [F,L]