- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Один из сайтов открывается с известной всем 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 ...
Вот htaccess:
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"
RewriteEngine on
RewriteCond %{HTTP_HOST} (www\.)?([a-z0-9-]+)\.co\.uk [NC]
RewriteRule ^([a-z0-9-]+)([0-9]+)\.html$ $1$2.html [L,QSA]
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^(www\.)?([a-z0-9-]+)\.co\.uk(.*) $2.html [L,QSA]
Последние 2 строки нужны исключительно для того, чтобы титульные страницы по запросам вида www.site.co.uk, www.website.co.uk, www.123.co.uk отображались.
не получается разобраться. А если выкинуть последние две строчки, как обрабатывается визит на mysite.com/? Та же ошибка? А на mysite.com/index.html разница есть?
Если выкинуть две последние строчки, то mysite.com и mysite.com/index.html показываются совершенно нормально.
Но при этом site.co.uk, website.co.uk, 123.co.uk показывают не свои титульные страницы site.html, website.html, 123.html, а тоже index.html (и mysite.com). Соответственно, более длинные прямые адреса вида site.co.uk/site.html, site.co.uk/site2.html и пр. показывают те, страницы, что нужно.
Если есть вопросы, могу пояснить. Если у вас есть домены, то вы можете вместо co.uk поставить любые другие расширения типа msk.ru или там info..
Эх, времени мало. Попробуйте жесткий вариант:
RewriteCond %{HTTP_HOST} (www\.)?([a-z0-9-]+)\.co\.uk [NC]
RewriteRule ^([a-z0-9-]+)([0-9]+)\.html$ $1$2.html [L,QSA]
RewriteCond %{HTTP_HOST} (www\.)?([a-z0-9-]+)\.co\.uk [NC]
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^(www\.)?([a-z0-9-]+)\.co\.uk(.*) $2.html [L,QSA]
Я с утра вставил в середину
RewriteCond %{HTTP_HOST} (www\.)?([a-z0-9-]+)\.co\.uk [NC]
и вроде работает.
Посмотрелс сейчас. И у вас точно также. Спасибо.
Думал-думал. И мысль пришла простая: RewriteRule не ловит, что это не домен co.uk (опция [C] фиксирует предыдущую строку), стало быть, поэтому и нужно опять прописать тот же самый RewriteCond, чтобы отделить нужные домены от ненужных.
А почему вы считаете этот вариант жестким? И насколько это будет влиять на скорость загрузки страниц?
жесткий - потому что условие повторяющееся, немножко по быдлокодеровски, не каноническая запись. В прочем, на скорось влиять не должно. Погляжу, может вспомню, как в таком случае, первое условие правильно привязать ко всем последующим инструкциям.
Рад, что так сработало.