Чтобы расширить ваш ответ, это более конкретно эта строка:
RewriteRule ^(.+)$ $1.php?page=$1 [L,QSA]
, которая не проверяет, заканчивается ли имя файла на PHP.
Она зацикливается, добавляя.php.php.php.php
пока не будет достигнут максимум (отметьте apache/logs/error.log
), а затем просто подайте исходную страницу, которая, как оказалось, присутствует, так что все выглядит нормально.
Чтобы это исправить, добавьте что-то вроде этого:
RewriteRule ^(.*)\.php$ - [L]
, который останавливается ([L]
), если адрес заканчивается на .php
.