我的软件支持多个域指向完全相同的目录,我使用共享主机。我需要从具有各自主机名的目录中加载每个域的favicon。这是一个视觉......
http://www.example1.com/favicon.ico
public_html/www.example1.com/favicon.ico
\
http://www.example2.com/favicon.ico
public_html/www.example2.com/favicon.ico
\
http://www.example3.com/favicon.ico
public_html/www.example3.com/favicon.ico
我尝试了一些这样的改写,没有任何成功......
RewriteEngine on
RewriteRule ^favicon\.ico$ %{HTTP_HOST}/favicon\.ico
要记住的事情......
1。)我使用共享主机,所以请记住我需要的答案应该简短。
2。)我只接受DYNAMIC答案,我只会使用%{HTTP_HOST}变量而不是静态域名,因为每次添加域名时我都不会手动编辑.htaccess文件。
3。)我最终可能会在这些子目录中放入一个.htaccess文件,虽然我现在不会这样做,但是我会非常感谢favicon的例外,但我没有必要接受这个答案。
4。)我非常乐意作出任何澄清。
答案 0 :(得分:2)
使用此代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteRule ^(favicon\.ico)$ %{HTTP_HOST}/$1 [L,NC]
答案 1 :(得分:0)
我一直在努力解决这个问题,但我最终使用以下规则修复了它:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/favicon\.ico$ /sites/all/themes/mytheme/favicon.ico
</IfModule>
我将其填入虚拟主机声明中。您可以为每个虚拟主机执行此操作,您需要做的就是将第二部分指向正确的图标! 这解决了我所有的favicon问题,即使对于Firefox:)
(在FF25,Safari 6.1,IE8和IE10上测试)
答案 2 :(得分:0)
这个在我的案例中效果更好
RewriteCond $0 !=images/favicon.ico
RewriteRule ^([^/]+/)*favicon\.ico$ /images/favicon.ico [L,NC]
答案 3 :(得分:0)
要支持所有可能的浏览器和平台,除了vlookup
文件之外,还需要具有favicon.ico
,android-chrome-192x192.png
,apple-touch-icon.png
等文件... < / p>
这里是重写规则以支持所有规则:
favicon-32x32.png
这将提供RewriteRule ^(favicon.*\.(ico|png)|apple-touch-icon.*\.png|android-chrome.*\.png|mstile.*\.png|safari-pinned-tab.*\.svg)$ /favicons/%{HTTP_HOST}/$1 [L,NC]
文件夹中的图标,包括Apple Touch,Android Chrome,Windows和其他图标。