.htaccess 现代favicons & htaccess重写规则

mxg2im7a  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(161)

而不是有所有新的favicon格式放置到我的网站的根目录,我把他们放在一个子文件夹内。
为了符合标准,因为一些浏览器/设备版本不使用html meta标记中指定的路径,而是试图从网站根目录获取文件,我创建了一个重写规则,将所有这些文件重定向到实际位置-但仅限于这些文件。
到目前为止,我已经得出以下结论:

RewriteEngine On
RewriteRule ^/((apple\-touch\-icon|android\-chrome|favicon|mstile)-([0-9]+)x([0-9]+).png|manifest\.json|browserconfig\.xml|favicon\.ico|(apple\-touch\-icon\-precomposed|apple\-touch\-icon).png|safari-pinned-tab.svg)$ /favicon/$1 [L]

这应该与以下所有文件匹配:

测试规则at this site时,规则不匹配(请参见图片):

我希望将此规则保留在同一行上,并且由于大小标准的变化,我希望保持此动态(也就是说,不是指定每个单独的文件,而是像我试图做的那样使用掩码)。我怀疑我的正则表达式有问题。
请协助或提供一个解决方案与纠正regex模式为我打算实现的。

hl0ma9xz

hl0ma9xz1#

现代化的收藏夹图标+重写

下面是一个相当健壮的模式,用于使用rewriteMap现代的favicon。

Regex模式,供参考

浏览器配置文件|manifest.json| safari-pinned-tab.svg|(安卓-Chrome|图标|mstile)-[0-9]+x[0-9]+.png|苹果触摸图标(预压缩. png|-[0-9]+x[0-9]+.png文件|.png格式)|清单. json)$

用法:将其应用于重写规则(htaccess)

此示例假定放置favicon的重写目标是一个名为favicon的文件夹(或您希望的任何文件夹)。

RewriteRule ^(browserconfig.xml|manifest.json|safari-pinned-tab.svg|(android-chrome|favicon|mstile)-[0-9]+x[0-9]+.png|apple-touch-icon(-precompressed.png|-[0-9]+x[0-9]+.png|.png)|manifest.json)$ /favicon/$1 [L]
jmo0nnb3

jmo0nnb32#

我不认为这会起作用。

  • 首先,它的“预合成”而不是“预压缩”
  • 看起来您正在评估'manifest.json'两次
  • 此外,我不知道任何图标,显示一位数的大小;它们将非常小,* 例如,* apple-touch-icon-precomposed-1x 1。它们都是2或3位数字,* 例如,* apple-touch-icon-114x114-precomposed.png或favicon-16x16.ico

干杯!干杯!

相关问题