What is the role of RewriteRule and RewriteCond in Apache's RewriteEngine when handling URL manipulation in PHP?

The RewriteRule directive in Apache's RewriteEngine is used to specify rules for rewriting URLs, while the RewriteCond directive is used to set conditions under which the rewriting should occur. These directives are commonly used in conjunction with PHP to manipulate URLs for purposes such as redirecting users to different pages or making URLs more user-friendly.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L]