我刚刚注册,这是我的第一个问题。 如果我需要在别的地方问问,请告诉我。
我们需要为SSLconfiguration站点,并将所有HTTP通信redirect到HTTPS。 我们决定使用mod_rewrite,因为我们已经使用了一些重写规则。 这些变化在我们的开发环境中进行了testing,并且按预期工作。 我们对生产进行了改变,发现它工作了几个小时,但最终开始失败,网站变得不可用。 一旦Apache服务重新启动,该站点恢复。 不幸的是,它不会持久,最终需要重复。
有人提到我的一些指导,说mod_rewrite不build议,并使用VirtualHosts来代替。 我想了解为什么这是首选的方法,并希望find我们遇到的问题的根源。 我们刚刚closures了重写规则,网站在443和80上都稳定下来。
https://wiki.apache.org/httpd/RewriteHTTPToHTTPS “注意:使用mod_rewrite来做到这一点不是推荐的行为”
https://wiki.apache.org/httpd/RedirectSSL “虽然推荐这个解决scheme是因为它更简单,更安全,但也可以使用mod_rewrite来获得与此处所述相同的效果”
有没有人知道为什么这是build议通过mod_rewrite的具体细节? 类似的经验? 关于下一步的build议?
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对于简单的Redirect已经足够了,而RedirectMatch提供了redirectURL类的方法。
作为一个额外的参考,请参阅何时不使用mod_rewrite ,其中提供了许多示例,并解释了为什么不使用mod_rewrite的一切。
mod_rewrite应该被认为是最后的手段,当其他select被发现想要。 当有更简单的select时,使用它会导致configuration混乱,脆弱和难以维护。