.htaccess - How to ensure all htaccess rewrite rules work without fail -


i have following code in htaccess file

options +followsymlinks -multiviews rewriteengine on rewritebase /  rewriterule ^(online-shop)/?$ $1/home [l,nc] rewriterule ^(my-integra)/?$ $1/home [l,nc]  rewritecond %{request_filename} !-f rewritecond %{request_filename} !-d  rewriterule ^(.+)/?$ index.php?id=$1 [qsa,nc]  rewriterule ^(blog)/(post|tags)/([\w-]+)/?$ index.php?id=$1&type=$2&unique=$3 [qsa,nc]  rewriterule ^(blog)/(archives)/([0-9]{4})/([0-9]{2})?$ index.php?id=$1&type=$2&year=$3&month=$4 [qsa,nc] 

the 2 rules @ bottom not seem work, if visit domain.com/blog/post/post-1 not show correct page , showing index.php?id=blog/post/post1 rather index.php?id=blog&type=post&unique=post1

rewritecond being applied next rewriterule only. keep generic rule last rule.

have way:

options +followsymlinks -multiviews rewriteengine on rewritebase /  rewriterule ^(online-shop)/?$ $1/home [l,nc] rewriterule ^(my-integra)/?$ $1/home [l,nc]  rewritecond %{request_filename} -f [or] rewritecond %{request_filename} -d rewriterule ^ - [l]  rewriterule ^(blog)/(post|tags)/([\w-]+)/?$ index.php?id=$1&type=$2&unique=$3 [qsa,nc,l]  rewriterule ^(blog)/(archives)/([0-9]{4})/([0-9]{2})?$ index.php?id=$1&type=$2&year=$3&month=$4 [qsa,nc,l]  rewriterule ^(.+?)/?$ index.php?id=$1 [qsa,l] 

Comments