Эта строка, безусловно, вызовет небольшое столкновение, поскольку она попытается переписать саму цель:
RewriteRule ^/(.*)$ page.php?q=$1 [L,NC]
Теперь, как мне предотвратить это?
Просто добавьте условие, что совпадающая строка не совпадает с адресатом:
RewriteCond $1 !=page.php RewriteRule ^/(.*)$ page.php?q=$1 [L]
Здесь != в RewriteCond указывает отрицательное лексикографическое сравнение вместо подразумеваемого сравнения регулярных выражений.
!=
RewriteCond
Использование условной перезаписи:
RewriteCond %{REQUEST_URI} !^page.php? RewriteRule ^/(.*)$ page.php?q=$1 [L,NC]