Попробуйте это правило перед другими вашими правилами:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $0 !.*\.php$
RewriteRule .*[^/]$ /$0/ [L,R=301]
Но вы также должны изменить существующие правила, заменив .*
как минимум .+
или лучше [^/]+
:
RewriteRule ^artists/([^/-]+)-p([^/]+)$ /artists.php?l=$1&p=$2 [QSA,L]
RewriteRule ^artists/([^/]+)$ /artists.php?l=$1 [QSA,L]
RewriteRule ^lyrics/([^/]+)/([^/]+)$ /artists-albums.php?a=$1&b=$2 [QSA,L]
RewriteRule ^lyrics/([^/]+)$ /artists-details.php?a=$1 [QSA,L]
RewriteRule ^p-([^/-]+)-([^/]+)$ /index.php?p=$1&q=$2 [QSA,L]
Если возможно, вам следует использовать еще более конкретный шаблон ([0-9]+
для чисел, [1-9][0-9]*
для чисел без 0 и т. Д.).