Я только что зарегистрировался и это мой первый вопрос. Дайте мне знать, если мне нужно будет спросить об этом в другом месте.
Нам необходимо настроить сайт для SSL и перенаправить весь HTTP-трафик на HTTPS. Мы решили использовать mod_rewrite, так как мы уже использовали некоторые правила перезаписи. Изменения были протестированы в нашей среде разработки, и все сработало, как ожидалось. Мы внесли изменения в рабочую среду и обнаружили, что она работает несколько часов, но в конечном итоге начинает давать сбой, и сайт становится недоступным. После перезапуска службы Apache сайт снова заработает. К сожалению, это длится недолго и в конечном итоге необходимо повторить.
Кто-то направил меня к руководству, в котором говорится, что mod_rewrite не рекомендуется и вместо этого нужно использовать VirtualHosts. Я хотел бы понять, почему это предпочтительный метод, и, надеюсь, найти основную причину проблем, с которыми мы сталкиваемся. Мы просто отключили правило перезаписи, и сайт работал стабильно при прослушивании как на 443, так и на 80.
https://wiki.apache.org/httpd/RewriteHTTPToHTTPS "Примечание: использование mod_rewrite для этого не рекомендуется"
https://wiki.apache.org/httpd/RedirectSSL «Хотя решение рекомендуется, потому что оно проще и безопаснее, вы также можете использовать mod_rewrite, чтобы получить тот же эффект, что описан здесь»
Кто-нибудь знает, почему это рекомендуется вместо mod_rewrite? Подобный опыт? Рекомендации по дальнейшим действиям?
Apache 2.4.18
Работает на Windows Server 2008 R2
Мы пробовали MaxConnectionsPerChild 0
и другие значения без разницы. я видел MaxConnectionResetsPerChild
достигнуто во время «простоя», и эти сбросы, похоже, не решают проблему ... в отличие от ручного перезапуска службы / родительского процесса Apache.
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https//wontletmepostlink.duetorep/1$ [R,L]
Отвечу на один из ваших вопросов:
mod_alias
, который обеспечивает Redirect
и RedirectMatch
. Redirect
достаточно для простых редиректов, а RedirectMatch
предоставляет средства для перенаправления классов URL-адресов.
В качестве дополнительной ссылки см. Когда не использовать mod_rewrite, который содержит множество примеров и хорошее объяснение того, почему не использовать mod_rewrite
За все.
mod_rewrite
следует рассматривать как крайнюю меру, когда не хватает других альтернатив. Использование его, когда есть более простые альтернативы, приводит к запутанным, хрупким и сложным в обслуживании конфигурациям.