2009-08-03 6 views
1

ちょっとしたことですが、私はそれを越えることはできません。htmlルートへの呼び出しを上書きするmod_rewrite

イメージファイルやCSSファイルへの参照は、< img src = "/ img/myimage.jpg"/>などとなります。さて、これらのアドレスを/subset/img/myimage.jpgのようなものにマッピングするためのmod書き換えルールを追加したいのであれば、どうしますか?

私の知る限り、/で始まったパスは上書きできませんでした。そして、あなたがそれをしている間、すべてのファイル要求に対してそのマッピングを行うルールが存在すればいいでしょう。

ありがとうございます!

編集:さらにもう1つ。このように動作する相対パス(tinyMCEによって生成される)も "../../../../img/myimage.jpg"です。私は実際にそれらの経路がpublic_htmlの下のどこかの方法でマップされるので、なぜそれらの仕事が実際にはわからない。それらの助けもありがたいです。

答えて

0

Ahh!愚かですみません。もちろん、ドキュメントルートのドキュメントルートにマップされているリクエストを処理する必要があります。私はサブディレクトリで作業していたことがわかります。

パスがpublic_htmlやwwwの下にマッピングされていて、まだパズルを管理しているという事実。しかし、私は余分な "../"はちょうど無視され、ドキュメントルートにマップされていると思います。それらがサーバーに送信される前に、相対URIは、常に絶対URIに解決されます:あなたの2番目の質問に

RewriteRule ^img/.* subset/$0 [L] 

そして今:

0

は、このルールを試してみてください。したがって、クライアントはベースURIに基づいて../../../../img/myimage.jpgを解決します(RFC 2396、5.2。絶対形式への相対参照の解決を参照してください)。したがって、サーバーは常に絶対URIパスを受け取り、それを文書ルートパスに追加して、要求されたURIパスをファイルシステムにマップすることができます。

+0

そして私はそれが過剰な "../"を取り除くだろうと推測していますか? – JHollanti

+0

はい、役に立たない '../'は取り除かれます。自分で試してみてください:http://example.com/../../../../../../../../。 – Gumbo

関連する問題