Apache 指令排序

Apache 指令排序

在 Apache 2 中,錯誤文檔mod_rewrite定义和可预测?我在文档中找不到有关此内容的任何信息。

例如,如果我在 .htaccess 文件(从标准 Drupal .htaccess 文件中剥离出来)中有以下内容

ErrorDocument 404 /index.php

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^ index.php [L]
</IfModule>

哪个将处理对 /favicon.ico、ErrorDocument 或 RewriteRule 的请求?服务器之间的请求是否始终相同,还是会根据 Apache 的配置方式而变化?

答案1

是的,它已定义。Mod_Rewrite 仅在 Apache 实际查找资源之前对传入请求起作用。ErrorDocument 在形成响应的级别起作用(基本上是最后一步)。

在这种情况下,Apache 的工作方式略微过于简单化了:

  • 接收请求
  • 修改请求(mod_rewrite 以及其他可能的请求)
  • 获取指定资源
  • 发送响应(如果未找到资源,则为 ErrorDocument)

相关内容