【发布时间】:2014-02-01 00:26:41
【问题描述】:
我的 httpd.conf 文件中有一些重写规则。有没有办法让 apache 仅在 url 无效时检查重写规则?我的重写规则之前是检查 REQUEST_FILENAME 是一个有效文件和一个有效文件夹。但是文档提到只有在找到重写规则的匹配项之后才会检查重写条件。
因此,只要有对 URL 的请求,apache 就会检查该 URL 的每个重写规则。几乎所有的页面都有图像、.js 和 .css 文件以及一些其他文件。 Apache 也会根据 httpd.conf 中的重写规则检查这些(我在为每个 URL 生成的 RewriteLog 中看到了这一点)。这会显着降低网站速度。
我知道 FallbackResource 指令。我现在不想使用它,因为它默认返回 200 的 http 状态代码。每当有对 Apache 未找到的页面的请求时,我想返回正确的状态代码(通常是 301)(通常,不正确的 URL 有正确的对应项,因此需要发送 301)。发送正确的 http 状态码也有利于我们的 seo 工作。如果有办法使用 FallbackResource 指令发送正确的 http 状态代码,我愿意使用该选项。
我曾尝试用谷歌搜索这些问题,但没有找到答案。我尝试过使用不同的 RewriteCond (s),但是,就像文档说的那样,无论如何都会检查每个 rewriterule。
对此的任何指示都会有很大帮助。
【问题讨论】:
标签: apache mod-rewrite url-rewriting