You're talking about using .htaccess to rewrite your URLs internally and route them appropriately to your application.
You should try with this specific .htaccess example that will do what you're looking for:
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /detail(?:\.php)?\?id=([^\s&]+) [NC]
RewriteRule ^ detail/%1? [R=302,L,NE]
# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^detail/([^/]+)/?$ detail.php?id=$1
EDITED: