Вы пытаетесь сделать что-то, что очень сложно. Проблема в том, что по своей природе директива RedirectRule
всегда снова запускает полный набор правил. Вы можете выйти из цикла, только когда получите окончательный URL-адрес, который не соответствует ни одному из правил, и это сложная часть, поскольку вы повторно используете имя showPAGE.php
.
Моя лучшая попытка на данный момент заключается в добавлении фиктивной скрытой строки:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/showPAGE\.php
RewriteCond %{QUERY_STRING} !^internal
RewriteRule ^ http://%{HTTP_HOST}/page [NC,R=301,L]
RewriteRule ^page$ showPAGE.php?internal [NC,L]
Это работает, но это не приятно. Определенно, проще перенаправить из PHP или просто выбрать другое имя.