Bu istediğinizi yapmak için htaccess yerine php den işlem yapmanızı tavsiye ederim,
siteadi.com/deneme-yazisi/ diye girildiğinde örneğin oku.php ye gönderme yapmışsanız, bu dosyanın gelen isteği kategorilerle karşılaştırması tutuyorsa kategoriyi, tutmuyorsa yazılarıla karşılaştırıp yazı varsa yazıyı, yoksa 404 hatası döndürmesini sağlamalısınız.
Yok ben illa htaccess ile yapacağım derseniz
RewriteCond %{REQUEST_URI} !^/kategori1/.*$
RewriteCond %{REQUEST_URI} !^/kategori2/.*$
RewriteCond %{REQUEST_URI} !^/kategori3/.*$
RewriteCond %{REQUEST_URI} !^/kategori4/.*$
....
RewriteRule ^([0-9a-zA-Z-_]+)$ /oku.php?id=$1
###sonra kategorilere ayrıca yönlendirme
RewriteCond %{REQUEST_URI} ^/kategori1/.*$
RewriteCond %{REQUEST_URI} ^/kategori2/.*$
RewriteCond %{REQUEST_URI} ^/kategori3/.*$
RewriteCond %{REQUEST_URI} ^/kategori4/.*$
RewriteRule ^([0-9a-zA-Z-_]+)$ /listele.php?id=$1
(yukarıda ! (ünlem) işaretine dikkat edin)
bu şekilde alt alta tüm kategorilerinizi hariç bırakıp yönlendirme yapmalı, en sonada kategoriye gelen istekleri ayrıca yönlendirmelisiniz. Tabi bu biraz amele işi olur, ve sunucunuza biraz daha yük bindirecektir, (htaccess satır satır okunur) Tavsiyem oku.php ve listele.php dosyalarını birleştirerek işi php ile çözmeniz.
Teşekkür ederim php ile hallettim bende