Apache httpd.conf重写规则

Apache httpd.conf重写规则,apache,mod-rewrite,url-rewriting,Apache,Mod Rewrite,Url Rewriting,我的httpd.conf文件中有一些重写规则。有没有办法让apache只在url无效时检查重写规则?我的重写规则之前会检查请求文件名是否为有效文件和有效文件夹。但是文档提到,只有在找到与重写规则匹配的条件后,才会检查重写条件 因此,每当有URL请求时,apache都会检查该URL的每个重写规则。几乎所有的页面都有图像、.js和.css文件以及其他一些文件。Apache也会根据httpd.conf中的重写规则(我在为每个URL生成的重写日志中看到这一点)检查这些内容。这大大降低了网站的速度 我知道

我的httpd.conf文件中有一些重写规则。有没有办法让apache只在url无效时检查重写规则?我的重写规则之前会检查请求文件名是否为有效文件和有效文件夹。但是文档提到,只有在找到与重写规则匹配的条件后,才会检查重写条件

因此,每当有URL请求时,apache都会检查该URL的每个重写规则。几乎所有的页面都有图像、.js和.css文件以及其他一些文件。Apache也会根据httpd.conf中的重写规则(我在为每个URL生成的重写日志中看到这一点)检查这些内容。这大大降低了网站的速度

我知道FallbackResource指令。我现在不想使用它,因为默认情况下它返回的http状态码是200。每当Apache没有找到页面请求时,我希望返回正确的状态代码(通常是301)(通常,错误的URL有正确的对应项,因此需要发送301)。发送正确的http状态代码也有利于我们的seo工作。如果有一种方法可以使用FallbackResource指令发送正确的http状态代码,我愿意使用该选项

我曾尝试在谷歌上搜索这些问题,但没有找到答案。我尝试了不同的重写条件,但正如文档所说,每个重写规则都会被检查


任何关于这方面的建议都会很有帮助。

看起来确实有一些阅读材料要为你们做,但是,当涉及到重写规则时,我总是把它当作“圣经”,并没有停止让我失望。也许这对你也一样


为什么不使用以下选项:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /not-found.php [L]
我会在根文件夹中放入一个.htaccess文件。这样,您就可以轻松地为每个站点自定义它