在开始解释我的问题之前,我想指出我是 BCA 学生,目前正处于学习阶段。我不是一个经验丰富的开发人员。我在一家 IT 公司兼职,担任高级内部 SEO 主管(高级是因为我在这里工作了 2 年多。)我目前正在学习 python,并且对 HTML 和 CSS 有很好的了解。
问题 最近,我决定使用下一代(由 Google Page Speed 引用)webp 格式更新我网站上的所有大尺寸 png/jpg 图像。我遵循了 web.dev (https://web.dev/articles/serve-images-webp) 和 Digital ocean (www.digitalocean.com/community/tutorials/how-to-create-) 的指南and-serve-webp-images-to-speed-up-your-website),由于我公司的网站非常庞大,大约有 70-80K 页面和 100K+ 图像,我决定使用 mod_rewrite 方法。虽然我可以使用PHP甚至Python来编辑html,但由于页面数量庞大,我选择了mod_rewrite方法。我将此代码添加到我的 .htaccess 文件中,该文件位于我网站的根目录下。
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_URI} (?i)(.*)(\.jpe?g|\.png)$
RewriteCond %{DOCUMENT_ROOT}/assets/webp/$1.webp -f
RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R]
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept env=REDIRECT_accept
</IfModule>
AddType image/webp .webp
这里我做了一点改动,添加了一个单独的目录来存放webp(ROOT/assets/webp/)。不幸的是,这个重写不起作用。
我上网寻找可能的解决方案,但我所有的尝试都是徒劳的。我尝试了很多方法来解决该问题,但未能成功。
什么都不起作用。在我绝望的尝试中,我什至要求 GPT AI 模型纠正问题,但建议使用与我上面执行的相同的故障排除方法。
我使用该代码:
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} (.*)\.(png|gif|jpe?g)$
RewriteCond %{REQUEST_FILENAME}\.webp -f
RewriteRule ^ %{REQUEST_FILENAME}\.webp [L,T=image/webp]
<IfModule mod_headers.c>
<FilesMatch "\.(png|gif|jpe?g)$">
Header append Vary Accept
</FilesMatch>
</IfModule>
正如 arkascha 提到的,“R”看起来不对。