我没有将所有新的favicon格式放在我网站的根目录中,而是将它们放在子文件夹中。为了符合标准,因为某些浏览器/设备版本不使用html元标记内指示的路径,而是尝试从网站根目录获取文件,我正在创建重写规则以将所有这些文件重定向到实际位置 - 但只有这些文件。
到目前为止,我想出的是:
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时,规则不匹配(参见图片):
我想将此规则保留在同一行,并且由于大小标准的变化,我希望保持这种动态(也就是说,而不是指定每个单独的文件,使用我试图做的掩码)。我怀疑我的正则表达式已经关闭了。
请协助或提供纠正的正则表达式模式的解决方案,以达到我想要实现的目标。
答案 0 :(得分:0)
以下是使用重写映射现代favicons的相当强大的模式。
^(browserconfig.xml |的manifest.json |狩猎钉扎-tab.svg |(机器人铬|图标| mstile) - [0-9] + X [0-9] + PNG |。苹果触摸-icon(-precompressed.png | - [0-9] + X [0-9] + PNG |。.PNG)|的manifest.json)$
此示例假定放置favicon(apple-icon *等)的重写目标是文件夹名favicons
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]