2012-02-12 18 views
2

我的軟件支持多個域指向完全相同的目錄,我使用共享主機。我需要從各自主機名的目錄加載每個域的favicon。這是一個視覺...Apache Rewrite:favicon在%{HTTP_HOST}目錄中

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

不知道爲什麼-1。我覺得Q很好解釋。 – TerryE

+0

@TerryE有人連續低估了我,請查看我今天的個人資料/信譽。我的名譽昨天大約爲270,現在是364,所以網站上有一個調整它的機制,但沒有從列表中刪除。有人可能不喜歡這樣一個事實,即使我指出自己的錯誤,就像我在這裏所做的那樣,他們會失敗 - 對我的一些問題投下一票。我努力確保自己能夠發現自己的錯誤,並向其他人說明問題(如果他們確定某些事情應該發揮作用,他們可以要求澄清),並解決那些與代碼相關的溝通問題。 – John

+0

我可以看到你有一系列的10個downvotes - 我懷疑由同一個演員誰擁有它爲你。任何人都可以對任何人起立或降低音量 - 這就是它在SO上的工作原理。然而,我覺得這樣做對某人來說是相當糟糕的禮節,而沒有解釋爲什麼他們會這樣做。我所能建議的只是查看這些帖子,看看你是否能夠看出爲什麼有人可以合理地低估它們。 – TerryE

回答

2

使用此代碼:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 

RewriteRule ^(favicon\.ico)$ %{HTTP_HOST}/$1 [L,NC] 
+0

第一行似乎更像是你接近事物的味道,對答案沒有任何影響。此外,您的規則版本看起來不錯,我在瀏覽器中禁用了緩存,但由於某些原因,它仍然無法正常工作。我檢查了我的Apache錯誤日誌,我沒有看到任何東西,在子目錄中沒有.htaccess文件... – John

+0

你甚至在error.log中看到404錯誤消息嗎? – anubhava

+0

手動檢查日誌,是的它會成爲404. – John

0

我一直在努力與這個問題太多,但我用下面的規則終於修好了:

<IfModule mod_rewrite.c> 
     RewriteEngine on 
     RewriteRule ^/favicon\.ico$ /sites/all/themes/mytheme/favicon.ico 
</IfModule> 

我塞進一個虛擬主機聲明這一點。您可以爲每個虛擬主機執行此操作,只需將第二部分指向正確的圖標即可! 這解決了我的所有圖標的問題,即使是Firefox的:)

(測試FF25,Safari瀏覽器6.1,IE8和IE10)

0

這一個在我的情況下更好地工作

RewriteCond $0 !=images/favicon.ico 
RewriteRule ^([^/]+/)*favicon\.ico$ /images/favicon.ico [L,NC]