Here is my code RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*) $1 [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(\w+)/?$ $1.php [R] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^smarty/(\w+)/?$ smarty/index.php?section=$1 [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^smarty/demo/(\w+)/?$ smarty/demo.php?name=$1 [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^smarty/demo/(\w+)/(\w+)/?$ smarty/demo.php?name=$1&source=$2 [L] Code (markup): When I do http://localhost/error, rule 2 picks up and redirects. When I do http://localhost/error/, I get a 403 error. I don't understand. Help appreciated,