Один із сайтів відкривається з відомої всім 500 Internal Server Error
При тому, що сама сторінка у вигляді чистого HTML.
Поліз в лог, а там "mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary."
Наскільки я розумію, це через рядків RewriteEngine, RewriteRule, RewriteCond в файлі .htaccess
Чи не міг би хто-небудь знає роз'яснити, в чому, власне, проблема і як її вилікувати? І невже RewriteRule дає таке велике навантаження на сервер, що потрібно виставляти ліміти?
Хотілося б розібратися.
Швидше за все є правило, яке зациклилося. Давайте Ваш хтаццесс сюди
Отримував таку помилку коли правила mod_rewrite були складені криво таким чином, що виходив циклічний редирект. Якщо немає циклу, то mod_rewrite наврядчи зможе дати сильне навантаження на сервер.
Може виникати, наприклад, коли яка-небудь інструкція RewriteRule складання таким чином, що викликає внутрішній редирект будь-який запит. Буває що в потрібному місці пропущена опція [L]. Показали б свій .htaccess
Так, мені теж здається, що справа в кривизні .htaccess
Поясню, що потрібно було зробити:
Є кілька доменів, які прив'язані до 1 папці. Домени виду mysite.com. site.co.uk, website.co.uk, 123.co.uk тощо.
Mysite.com - це як би титульний сайт (index.html), який окремо не описується в htaccess (він і глючить)
Файли для інших доменів лежать в цій же папці і повинні мати назви виду (для них і робиться htaccess):
site.html, site2.html, site3.html.
website.html, website2.html, website3.html.
123.html, 1231.html, 1232.html.
Options + Includes + FollowSymLinks -Indexes
AddHandler server-parsed .shtml
DirectoryIndex index.shtml index.htm index.php index.html
AddDefaultCharset windows-1251
CookieTracking on
CookieExpires "1 years"
Останні 2 рядки потрібні виключно для того, щоб титульні сторінки по запитам виду _www.site.co.uk, _www.website.co.uk, _www.123.co.uk відображалися.
Я з ранку вставив в середину
і начебто працює.
Посмотрелс зараз. І у вас так само. Дякуємо.
Думав-думав. І думка прийшла проста: RewriteRule не ловить, що це не домен co.uk (опція [C] фіксує попередній рядок), стало бути, тому і потрібно знову прописати той же самий RewriteCond, щоб відокремити потрібні домени від непотрібних.
А чому ви вважаєте цей варіант жорстким? І наскільки це буде впливати на швидкість завантаження сторінок?
жорсткий - тому що умова повторюється, трошки по бидлокодеровскі, що не канонічний запис. В іншому, на швидку впливати не повинно. Подивлюся, може згадаю, як в такому випадку, перша умова правильно прив'язати до всіх наступних інструкцій.
Радий, що так спрацювало.