.htaccess using public folder and SEO friendly URL
Redundant RewriteEngine declarations
Unused match group in (public)
Escaping (using \) is not needed in the new URLs
A personal touch, but I prefer to keep the core directives at the top, and put module specific directives inside &lt;IfModule&gt; body, so that I won't receive errors if the modules are disabled.
Multiple declarations for ErrorDocument 500




Options +FollowSymLinks -MultiViews

ErrorDocument 401 /subscription/how_to_subscribe.html# Turn mod_rewrite on
ErrorDocument 404 /errors/not_found.html
ErrorDocument 500 http://error.example.com/server_error.html

&lt;IfModule mod_rewrite.c&gt;
    RewriteEngine on
    RewriteBase /

    RewriteCond %{REQUEST_URI} !^/(public)
    RewriteRule ^ /%1%{REQUEST_URI}

    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule ^(.*)$ $1.php [L]
&lt;/IfModule&gt;