apache - 如果未找到请求的图像 URL,则使用 mod_rewrite 调用默认图像 URL

标签 apache .htaccess mod-rewrite centos http-status-code-404

我对 htaccess 重写相当陌生,想知道是否有人可以为我提供解决方案。因此,在我的网站上,我的用户具有以下格式的自定义头像图像。

http://siteurl.tld/customavatars/avatar78364_1.gif
(其中数字 (78364_1) 是用户 ID)

每个用户都会生成自己的自定义头像图像链接,即使他们没有上传图像。这是问题所在,目前我正在使用 ErrorDocument 404/images/icons/no-avatar.png 作为没有上传自己图像的任何用户的默认图像。这个 404 对 SEO 不利,所以我想做的是使用重写来保留原始 URL,但提供 headless 像图像文件。

实际上任何人都会去http://siteurl.tld/customavatars/avatarUSERID_HASNOIMAGE.gif仅显示默认图像,而不会重定向到浏览器 URL 中的 no-avatar.png。

最佳答案

这应该够了吧:

RewriteCond %{REQUEST_FILENAME} avatar.*\.gif$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /.* http://siteurl.tld/customavatars/no-avatar.png [R=301,L]

实际上,任何以 avatar 开头并以 .gif 结尾但不存在的请求文件都会以 http://siteurl.tld/customavatars/no-avatar.png 来回答。

希望能帮助到你 :)

关于apache - 如果未找到请求的图像 URL,则使用 mod_rewrite 调用默认图像 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42952559/

相关文章:

Apache 2.2 虚拟主机 + Tomcat 7 应用程序

python - 无法识别通过 Django 提供的 iCal 提要

php - 安装扩展后在 PHP 中激活 mbstring

html - 修复移动设备的 .htaccess .mp4 热链接保护

php - 与 Mysql 的连接未关闭

css - 错误文档无样式(服务器)

.htaccess - 使用改变的 RewriteCond 检查文件是否存在于多个位置

php - .htaccess 将文件路径重写为文件夹路径

apache - 尝试为丢失的文件强制使用状态代码 200 的 RewriteRule 重定向

php - htaccess 重写 XML 站点地图和用户友好的站点地图