在 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)