質問

どのように私は/images/favicon.icoするルートディレクトリにfavicon.icoを、または任意のサブディレクトリに対するすべての要求をリダイレクトします。

役に立ちましたか?

解決

このルールを試してください:

RewriteEngine on
RewriteRule ^favicon\.ico$ /images/favicon.ico [L]
<時間>

編集のfavicon.icoをのための任意のパスセグメントの深さ:

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

他のヒント

www.mysite.com/images/favicon.icoでファビコンのために 最も堅牢な方法は以下のようになります:

RewriteCond %{REQUEST_URI} !^/images/favicon\.ico$ [NC]
RewriteCond %{HTTP_HOST} (.+)
RewriteRule ^(.*)favicon\.(ico|gif|png|jpe?g)$ http://%1/images/favicon.ico [R=301,L,NC]

説明:

RewriteCond %{REQUEST_URI} !^/images/favicon\.ico [NC]
-
- 正しいURIが要求された場合にリダイレクトルールが適用されないことを保証します(とブラウザが正しいURIを要求した場合、この行は、ルールを処理回避例えば301リダイレクトは、ブラウザのキャッシュに正しいファビコンURIを記述します) - [NC]それは

大文字と小文字を区別していないこと

RewriteCond %{HTTP_HOST} (.+)
- RewriteRule
にホスト名をハードコーディングを避けるために - HTTPホスト名を取得 - これは、問題(またはあなたのRewriteRuleに新しいサイトのベースURLを再ハードコーディングする必要があります)。

せずに、ローカル/テストサーバーと運用サーバーの間であなたの.htaccessファイルをコピーできることを意味します

RewriteRule ^(.*)favicon\.(ico|gif|png|jpe?g)$ http://%1/images/favicon.ico [R=301, L]
- ^は、正規表現
の始まりです - URIのワード(.*)前にゼロまたは任意の数の文字が存在し得ることを意味する(すなわち、これはルートディレクトリまたはサブディレクトリがURIの一致に含まれることを可能にする部分である)
- faviconワイルドカード基であります - URIの拡張子が\.(ico|gif|png|jpe?g).ico.gif.png.jpg
のいずれかと一致する.jpegチェック - $は、正規表現
の終わりです - http://%1/images/favicon.icoは、リダイレクトURLである - そしてそれは我々が以前RewriteCondで取得したホスト名を注入します。 %1が、これはそれを意味のRewriteCond後方参照に呼ばれることに注意してください満たされた最後のRewriteCondです。
(例えば%2が満たされたのは第二-最後RewriteCondなります) - ブラウザのキャッシュにリダイレクトを保存する - R=301は、それは永久的なリダイレクトを意味します。テストするときは注意してください - あなたは、コードの変更または更新されませんリダイレクトの間、ブラウザのキャッシュを削除する必要があります。あなたはルールの作品を知ってまで、おそらくこれを除外。
- Lこの.htaccessファイルに従うべきその最後のリダイレクトを意味します - あなたは、ブラウザが正しいURLに向けられたら、ライン1が満たされることはありませんので、作業ルールを取得するためにこれを必要としません。 (リダイレクトURLがL条件を満たす維持するため)ことなく、ライン1またはのRewriteRuleをRewriteRuleのいずれかは、永久ループになります。 favicon.icoを要求であるため、あなたは(たぶん)任意の次のルールを無視することができます - しかし、それはあなたがファビコンルールに従って他のルールを持っている場合は、とにかくLを追加することをお勧めします。

あなたは http://htaccess.mwl.be/する

.htaccessルールをテストすることができます

最後の注意:
- あなたのサブディレクトリのいずれかにある.htaccessファイル内の他ののRewriteRuleを持っていないことに注意してください
。 - 。例えば、あなたが入れた場合は、のごwww.mysite.com/ルートフォルダ.htaccessファイルで、このの答えは、あなたのRewriteRule (.*) xxxフォルダ内www.mysite.com/images/タイプのルールができた結果と混乱

RewriteEngine on

RewriteRule ^(.*)favicon\.ico /images/favicon.ico [L]

私は質問が.htaccessbutタグ付けされている知って、シンボリックリンクを使用しない理由は?

ln -s images/favicon.ico favicon.ico

この迅速なリライトは、トリックを行う必要があります:

RewriteRule ^(.*)favicon.ico /images/favicon.ico
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top