Apache 2.2.11 のローカル インストールを使用しており、ドキュメント ルート ( alias localhost/fp/ => /www/dirs/friendpages
) の上のフォルダーにエイリアスを設定しました。の .htaccess ファイルではlocalhost/fp/favicon.ico
なく、リクエストを「/favicon.ico」にリダイレクトできるようにしたいと考えています。これは可能ですか?もしそうなら、どうすればいいですか?localhost/favicon.ico
localhost/fp
favicon.ico への参照は、次のようなファイルから取得されます:
/www/dirs/friendpages/test.htm (localhost/fp/test.htm)
=>
<html>
<head>
<link href="/favicon.ico" rel="shortcut icon" type="image/x-icon">
</head>
<body>
Page using favicon.ico
</body>
</html>
RewriteRule を使用していくつかの試みを行いました。例えば、
RewriteRule ^/favicon.ico$ /www/dirs/friendpages/favicon.ico
...しかし、解決策を見つけることができませんでした。正確にPatternとは何か、Substitutionはどうあるべきかについて混乱しているようです(与えられたRewriteRule Pattern Substitution
)。上記のリンクタグを介した相対ファイル参照と「localhost/fp/favicon.ico」のような絶対参照を区別するRewriteRuleを設定する方法について特に混乱しています(後者は明らかにリダイレクトを必要としません)。 )。
httpd.conf
また、ファイルで次を使用して書き換えログを有効にしました。
RewriteLogLevel 9
RewriteLog /logs/rewrite.log
localhost/fp/test.htm
...しかし、上記の RewriteRule を使用して上記のリストをロードすると、次のようになります。
127.0.0.1 - - [04/Nov/2011:05:09:51 --0700] [localhost/sid#14f44f8][rid#2619268/initial] (3) [perdir /www/dirs/friendpages/] strip per-dir prefix: /www/dirs/friendpages/test.htm -> test.htm
127.0.0.1 - - [04/Nov/2011:05:09:51 --0700] [localhost/sid#14f44f8][rid#2619268/initial] (3) [perdir /www/dirs/friendpages/] applying pattern '^/favicon.ico$' to uri 'test.htm'
127.0.0.1 - - [04/Nov/2011:05:09:51 --0700] [localhost/sid#14f44f8][rid#2619268/initial] (1) [perdir /www/dirs/friendpages/] pass through /www/dirs/friendpages/test.htm
目的の結果を達成するための別の方法 (適切な参照自体をハードコーディングする以外) は、(単にエイリアスを使用するのではなく) 仮想ホストをセットアップすることであることを発見しましたが、私の直感では、 mod_rewrite と .htaccess ... どうやって?