Это htaccess, который у меня есть: Options + FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/pages
RewriteRule ^(.+)/$ /$1 [NC]
RewriteRule ^$ /pages/index.php [NC]
RewriteRule ^([a-z]+)\?([^/]+)$ /pages/$1.php?$2 [NC]
RewriteRule ^([a-z]+)/([^/]+)$ /pages/$1.php?q=$2 [NC]
RewriteRule ^([a-z]+)$ /pages/$1.php [NC]
ErrorDocument 404 /pages/404.php
Что нужно сделать, довольно просто:
- удалить косую черту из URL
- прямой example.com/tomato to example.com/pages/tomato.php
- прямой example.com/tomato?c=red&size=big to example.com/pages/tomato.php?c=red&size=big
- direct example.com/tomato/red to example.com/pages/tomato.php?q=r
Но это проблема: любой URL-адрес страницы for //tomato.php соответствует 7-й строке .htaccess, которая создаст бесконечный цикл.Вот почему я добавил исключение для / pages, но оно, похоже, игнорируется - я все еще получаю 500 Internal Server Error с этим сообщением в журнале:
mod_rewrite: максимальное количество внутренних перенаправлений достигнуто.Предполагая ошибка конфигурации.Используйте «RewriteOptions MaxRedirects» для увеличения лимита, если это необходимо.
Может ли это быть связано с тем, что я запускаю это с виртуальными хостами?Если так, что нужно сделать, чтобы это исправить?