0

製品のサイズの異なる画像がいくつかあります。商品画像が欠落している場合は常に、正しいサイズのデフォルト画像を返したいと考えています。

画像へのパスは、製品ごとに異なります。path /www/docroot/images/brand/product/product1_l.jpg path /www/docroot/images/differentbrand/differentproduct/someotherproduct1_l.jpg 画像のサイズは、左の項目のようになります。右側の対応するデフォルトの画像を選択します。

product1_l.jpg large    noimage_l.jpg
product1_m.jpg medium   noimage_m.jpg
product1_s.jpg small    noimage_s.jpg

mod_rewrite を使用して同様のことを達成している人々の例をいくつか見てきました。私のシナリオに合わせてそれをどのように使用できるかについて、誰かがガイダンスを与えることができますか?

4

2 に答える 2

0

コメントありがとうございます。最終的には別のソリューションを採用しました。onerror js タグを使用して、適切な noimg の場所を示しました。これは私たちの環境にとってよりクリーンで簡単でした

于 2012-08-07T17:34:48.257 に答える
0

インテリジェントな 404 ハンドラーが必要です。Apache が 404 (ファイルが見つかりません) エラーをスローした場合、インテリジェント ハンドラーは、URL のパターンを調べて、代わりに提供する既知のリソースを見つけて、イベントの救済を試みる必要があります。また、フォールバック イメージが存在しない可能性にも対処する必要があります。

このページでは、ファイルが存在するかどうかを確認する方法を示しますが、ロジックは最後の行にある必要があります。

http://www.phpriot.com/articles/search-engine-urls/5

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1

または、.htaccess ルートに進むこともできます (その方がクリーンだと思います)。

http://httpd.apache.org/docs/2.2/mod/core.html#errordocument

ここで .htaccess と PHP を使用できると仮定すると、1 つの解決策になります。

次の行を .htaccess に追加します。

ErrorDocument 404 /error.php

次に、このコードを error.php に次のように追加します

<?php
 if(preg_match("/^/images/thumbnail/", $_SERVER['REQUEST_URI'])) {
   //do a 302 redirect
   header( 'Location: /images/defualtImage.jpg' ) ;
 } else {
   //You need to go somewhere to handle actual 404 errors
   header( 'Location: /static/404.html' ) ;
 }
?>

ここでは、 302 リダイレクト ダイレクトが最適です。

于 2012-07-27T00:22:57.260 に答える