"terror.audio" and "design/audio/terror.mp3" match "error", so the "RewriteRule error error.php" line takes effect. Rather than fixing just that one line, you can replace that line and all the lines that add ".php" extensions with the following:
Code:
RewriteCond %(DOCUMENT_ROOT}/$1.php -f
RewriteRule ^/?(.*)$ $1.php
RewriteRule ^/?error\.php - [L]
(Overall, you could make better use of regular expressions.) The first two lines append a ".php" if doing so names a file that exists. The third is an optimization to stop rewriting the error page URL.
An alternative is to turn on content negotiation (my personal preference) by adding "Options +MultiViews". With content negotiation, Apache will automatically add file extensions to URLs.
You should add the "last" flag ([L]) to every RewriteRule that doesn't need further processing. That way, you won't accidentally rewrite a URL in a later rule. This would also have prevented the problem with the "error" rewrite.
Another thing that might cause other problems is that "." matches any single character, so the ".audio" subpattern will match "/audio". If you want to match a literal period, escape the dot and use "\.". Note that the dot isn't special in character classes, so you don't need to escape it there ("[.]" will match a literal period and nothing else).
You probably don't need the "RewriteBase /". Why do you have it?
Applying all the above suggestions (and a few more fixes), you get:
Code:
RewriteEngine on
# force secure connection for audio files
RewriteCond %{HTTPS} !=on
RewriteRule ^/?([^/]+\.(audio|mp3|wma|glazba))$ https://podaci.co.uk/$1 [L]
RewriteRule ^/?([^/]+)\.(pdf|zip)$ /design/documents/$1.$2 [L]
RewriteRule ^/?([^/]+)\.(png|jpg|gif)$ /design/images/$1.$2 [L]
RewriteRule ^/?([^/]+)\.(audio|mp3)$ /design/audio/$1.mp3 [L]
RewriteRule ^/?([^/]+)\.wma$ /design/audio/$1.wma [L]
RewriteRule ^/?([^/]+)\.glazba$ /design/audio/mc_sniper/$1.mp3 [L]
RewriteRule ^/?index(\.php|$) naslovnica.php
RewriteRule ^/?moj_račun(\.php|$) user_personal.php
#alternative to the following two lines: Options +MultiViews
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^/?(.*)$ $1.php
RewriteRule ^/?error\.php - [L]
RewriteRule ^(hr|en)$ lang.php?$1
RewriteRule ^~([^/]+)$ /users/$1/
RewriteRule ^~([^/]+)(.*) /users/$1$2
##################Login#################################
RewriteRule ^([^/.]+)/log(in|out)$ log$2.php?redirect=$1 [L]
RewriteRule ^([^/.]+)/([^/\.]+)/log(out|in)$ log$3.php?redirect=$1&name=$2 [L]
########################################################