0

次のような.htaccessファイルがあります。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

index.phpには常に表示される画像がありますが、書き換えられたパスに移動すると、画像のリクエストの前にそのパスが追加されます。したがって、「categories」セクションには、引き続き私のfoo.pngがimages / foo.pngに表示されますが、パスcategories / images/foo.pngが含まれるようになりました。

.htaccess書き換えルールでこれを厳密に修正できますか?もしそうなら、どのように?

4

3 に答える 3

1

より簡単な解決策は、サイトのルートフォルダに基づいてhtmlのimg要素にsrcを使用することです。(その1つの画像だけの場合...)

例: http ://www.site.com

<img src="/images/header.jpeg" />

これは、どのフォルダーにいるかに関係なく、常にhttp://www.site.com/images/header.jpegを参照します。

于 2012-12-28T17:00:51.763 に答える
0

これは、画像のリクエストを受け取り、ルート/images/foo.pngに移動するように書き換える必要があります。

RewriteRule ^.*/images/foo.png$ /images/foo.png

別の画像がどこか/images/foo.pngにある場合、特定の例外を記述しない限り、そのリクエストも/images/foo.pngに書き換えられることに注意してください。

于 2012-12-28T16:48:14.503 に答える
0

これは、相対URLと絶対URLの取り違えのように聞こえます。http://domain.com/category/post/name相対URIベースのようなパスが/category/postあり、Webサーバーによって返されるコンテンツで提供されるすべての相対リンクには、ブラウザーによってその前に追加されます。実際のURIベースが何であるかをブラウザに伝えるために、これをヘッダーに含めることができます。

<base href="/">

または、すべての相対URLを絶対URLに変更することもできます。

于 2012-12-28T17:30:31.980 に答える