Там есть две проблемы.Во-первых, ваше условие
RewriteCond %{REQUEST_URI} !(administration|sitemap)/(.*)\. [NC]
всегда будет истинным, потому что значение %{REQUEST_URI}
всегда имеет переднюю косую черту (поэтому шаблон всегда не будет совпадать).Вы также, вероятно, не хотите искать эту точку в тех случаях, когда вы просматриваете карту сайта и папки администрирования напрямую.
Во-вторых, условия применяются только к самому следующему правилу, поэтому пока папки будутигнорируется для правила
RewriteRule ^([a-zA-Z0-9-]+)/lang:([0-9]+)?$ index.php?t=$1&l=$2 [L]
они не будут игнорироваться для
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?t=$1
Есть несколько способов это исправить, но самый простой может быть просто игнорировать остальные правила вслучай, когда любое из ваших условий совпадает заранее, например:
# Don't rewrite and stop processing if any of the following is true
RewriteCond %{REQUEST_URI} ^/(administration|sitemap)/ [NC,OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Dync links
RewriteRule ^([a-zA-Z0-9-]+)/lang:([0-9]+)?$ index.php?t=$1&l=$2 [L]
RewriteRule ^lang:([0-9]+)?$ index.php?l=$1 [L]
RewriteRule ^sitemap/?$ index.php?sitemap=sitemap [L]
RewriteRule ^error/([0-9]+)?$ index.php?error=$1
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?t=$1