除了避免不必要的处理(例如导致重定向到仅在下一次传递时才被再次重定向的url)外,指令是否还应按照特定的顺序放入.htaccess文件中以提高效率/性能?例如,如果有一个简单的重定向,例如:
Redirect 301 /page1.htm https://example.com/page1/
会比基于regex和RewriteCond参数的重写规则更快,如果是这样,那么将它们放到最顶端是有意义的,但这实际上是真的吗?另外,对于其他非重定向类型的伪指令,例如ErrorDocument
,Options
,AddType
和AddHandler
,. htaccess文件中的位置是否会影响性能?
我也了解可移植性,在不确定要移动到的服务器支持的情况下,IfDirective
块可用于防止500个内部服务器错误:
<IfModule mod_rewrite.c>
RewriteEngine On
// code here
</IfModule>
但是,如果您已经知道环境支持所需的模块,跳过这些模块是否更快?再一次,我假设是的,但是我看不到任何地方讨论什么规则对.htaccess文件中的性能产生什么影响的细节,只有使用conf文件的速度更快(这里不是一个选择),并且它们越大,对性能的影响越大。