Q:

htaccess issue when i try to access a directory

So here's my code:
RewriteEngine On

RewriteRule ^contact$ contact.php [QSA,L]
RewriteRule ^error$ error.php [QSA,L]

RewriteRule ^([^/.]+)/?$ product.php?weblink=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /error [L,R=301]

It's simple so when I try to access host/product-name it works but when I try to access for example a directory /blog or /blog/ redirect pe to error page specified by last rule. What's the problem?

A:

You can do it this way
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]

RewriteRule ^contact$ contact.php [QSA,L]
RewriteRule ^error$ error.php [QSA,L]
RewriteRule ^([^/.]+)/?$ product.php?weblink=$1 [L,QSA]
RewriteRule . /error [L,R=301]

