Redirecting from example.com to example.com/drupal
Try in .htaccess and make sure RewriteEngine On

RewriteRule !^drupal/ drupal/%{REQUEST_URI}


Then try example.com if this maps to example.com/drupal/

I think RewriteBase /drupal will not produce the result.

It should be either RewriteBase / or commented in the case above.



I have gone through this issues deeply and fixed on my end.

Put following rule to your .htaccess on root.

RewriteEngine On
RewriteRule !^drupal/ drupal/index.php?q=%{REQUEST_URI}


The default .htaccess of Drupal is restored to original.

After this setup css and image will fail those are depending on $base_path.
I then override $base_path value from /drupal/ to / using hook_init()

function my_custom_module_init(){
   global $base_path;
   $base_path = '/';
}


And this is fixed.