Cache LiteでAWSページをキャッシュできない問題の解決方法

このQ&Aのポイント
  • AWSページをキャッシュするための.htaccessとphpの組み立て方について説明します。
  • Cache Liteを使用してAWSページをキャッシュしようとしましたが、うまく機能しないという問題が発生しています。
  • キャッシュされていないawsページへのアクセスを解決するためには、書き方に注意が必要です。
回答を見る
  • ベストアンサー

Cache Liteでcasheを作ってくれない

.htaccessを利用して、awsの商品ページにアクセスして、xmlをキャッシュするようなphpを組んでみました。 たとえば、http://doracken.com/ds/13305831-4.html にアクセスすると、.htaccessでitem.phpにアクセスされ、13305831-4の部分をGETで因数として渡す→ブラウズノードとページを送り、自動的にawsのURLに組み立てるというものです。 --Item.php-- <?php $Browse = $_GET['b'] ; $Bro = $_GET['bro'] ; $pgn = $_GET['Page']; $URL = "http://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&SubscriptionId=1ZVAJQT4R8GWRG0G6502&AssociateTag=auctionzituyo-22&Operation=ItemSearch&SearchIndex=VideoGames&BrowseNode=".$Browse."&ResponseGroup=Offers,ItemAttributes,Similarities,Reviews&ContentType=text/html&Style=http://doracken.com/dsitems.xsl&Version=2006-05-17&ItemPage=".$pgn; require_once 'Cache/Lite.php'; $options = array( 'cacheDir' => './tmp/', "lifeTime" => 3600, ); $Cache_Lite = new Cache_Lite($options); if ($cache = $Cache_Lite->get($URL)) { $content = $cache; }else{ $content = file_get_contents($URL); $Cache_Lite->save($content,$URL); } print $content; ?> しかしなぜか、アクセスしたawsページをキャッシュしてくれないんです。一体どのように書けばいいでしょうか?

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • tommyt
  • ベストアンサー率50% (1/2)
回答No.1

キャッシュが作られない原因はさまざまなので とりあえず$optionsに 'pearErrorMode' => CACHE_LITE_ERROR_DIE を追加して動作の確認をしてみたらいかがでしょうか? まずは一番単純な状態で動作の確認を行えば解決への近道になるかと思います。

参考URL:
http://pear.plus-server.net/package.caching.cache-lite.cache-lite.cache-lite.html

関連するQ&A

  • .htaccessでキャッシュへアクセスした際に新しいページへ

    .htaccessを使ってgoogleなどのキャッシュへのアクセスした際に 該当URLの現在のページ(更新後の状態)へ転送する方法を 教えていただけないでしょうか?

  • phpで作られた多言語向けHPから日本語表示でデータを取り込みたい

    下記のHP http://www.ffxiah.com/browse.php?sid=21 では、「言語:EN」をクリックすることで、英語バージョンに、「Language:JP」をクリックすることで日本語バージョンに切り替えられるHPです。 問題は、このHPの日本語バージョンのデータを取り込もうとして <?php $_GET[site] = "http://www.ffxiah.com/browse.php?sid=21" $page = @file($_GET[site]); ・・・ とプログラムを組んだのですが、どうしても英語のページしか取り込めません。 英語バージョンも日本語バージョンも同じURL(http://www.ffxiah.com/browse.php?sid=21)になっています。 このページの日本語バージョンを取り込むにはどうしたらいいのでしょうか?

    • 締切済み
    • PHP
  • キャッシュ問題

    php,mysqlを使用した動的サイトなのですがdbの内容を更新してページでリロードしても情報が全く変わりません。 おおまかな流れではありますがアクセスの度にdbに接続しselectでデータを取得しています。 ブラウザから一時保存ファイルを消去してリロードしてやっとdbの内容が反映される状況です。 原因は明らかにキャッシュかと思うのですがどうすれば回避することはできますか? htmlには以下のタグを入れているのですが全く効果はないようです・・・ <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" /> <meta http-equiv="Expires" content="0" /> htmlの問題かphpの問題か微妙なラインなのですが回避方法としてアドバイス頂けますと幸いです。

    • 締切済み
    • PHP
  • 画像をキャッシュさせたくない

    CGIで動的に画像を表示するため表示した画像をキャッシュさせたくないのですが、どうすればいいのでしょうか。 他のページなどを参考に <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> をヘッダーに入れてみましたし、リダイレクトしたURLの後ろに無意味なランダム数字を入れても見ましたが、やはりキャッシュされています。 たとえキャッシュされていても無視して読み込むようなヘッダーとか何か確実に新たに読み込む方法はないでしょうか。

    • ベストアンサー
    • HTML
  • キャッシュ(?)の消去について。

    <?php //$aはurlの配列です。 foreach($a as $v){ $imgNum = str_pad($count, 5, '0', STR_PAD_LEFT); $imgURL = "img/$imgNum.jpg"; if ( false == @file($imgURL) ){ printf("<a href=\"%s\"><img src=\"img/none.jpg\" /></a>\n", chop($v, "\n")); } else { printf("<a href=\"%s\"><img src=\"$imgURL\" /></a></li>\n", chop($v, "\n")); } //以下のようなものを含めたり。 $imgURL = NULL; @unlink($imgURL); clearstatcache(); } /* php header("pragma: no-cache"); header("cache-control: no-cache"); header("expires: 0"); html <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> .htaccess <Files ~ "\.(html|php|jpe?g|gif|png)$"> Header set Pragma no-cache Header set Cache-Control no-cache </Files> 上記3つも含めていますが、イメージの出力にあたるif文で分岐してくれません。 あきらかにfile関数に対応するjpgはないのですが。 ブラウザにキャッシュは記憶しないよう設定しています。 色々考えましたが、停止してしまいました。 ご回答お待ちしております。 */

    • 締切済み
    • PHP
  • フォームで送られたデータのキャッシュを消したい。

    最近phpを始めたばかりの初心者です。 簡易的なアクセス認証?のようなものを作っています。 実行すると、フォームが現れ、パスワード「12345」を入れると includeのindex.incを表示し、 パスワードが合っていなければ「パスワードが違います」と表示させるように以下のコードを書きました。(かなり稚拙なコードで見難いとは思いますが。。) <?php $pass = $_POST['pass']; if ($pass=="12345"){ include("index.inc"); exit; }elseif ($pass!="12345"){ echo 'パスワードが違います'; }else{ echo ' <form method="post" action="'; echo $PHP_SELF; echo '"> <input type="password" name="pass"></form> パスワードを入れてください'; }?> で、一応は動作するのですが、ページをリロードさせるとブラウザから「フォームのデータを再送信します」旨のアラートが出ます。 ここで困っています。 パスワードを間違った場合、ブラウザのバックで戻る事で、入力フォームには戻れますが、もしそのままリロードしてしまうと、誤ったデータがキャッシュに入ったまま再入力されてしまい、再度このphpに戻っても「パスワードが違います」という表示のままになってしま、フォームが現れません。 また、一旦ページを閉じたり、別のページに飛んでも、このphpに入ったときには再度パスワードを入力させたいと思います。 ブラウザのキャッシュに問題があると思い、 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-control" CONTENT="no-cache"> <META http-equiv="Expires" content="0"> を追加してみたのですが、うまく行きません。 どのようにしたら良いのでしょうか? なるべく簡易的なものを考えています。 が、やはりセッションなどを使う事になるのでしょうか。。

    • ベストアンサー
    • PHP
  • 携帯サイト作成する場合の.htaccess処理で困っています。

    携帯サイト(XHTML+CSS)の作成方法を勉強している最中で.htaccessファイルを作成していたのですがうまく動かない部分がありますのでお手数ですが対応方法をお教え頂けますでしょうか。 .htaccessでapplication/xhtml+xmlの情報を送り、さらにPHPファイルをhtmlの拡張子で動作できればと思い、いろいろなサイトの情報を集めて下記内容を作成しアップロードしたところ、Content-Typeがapplication/xhtml+xmlにならずにtext/htmlのままPHPプログラムが動作しました。(AddTypeを無視しているようです) [.htaccess] AddHandler x-httpd-php442 .php .html AddType "application/xhtml+xml; charset=Shift_JIS" .html AddHandlerの".html"を消すと今度はContent-Typeがapplication/xhtml+xmlになりますがPHPが動作しなくなります。 AddHandler x-httpd-php442 .php .htmlの1行を.htaccessに記述し、 HTMLファイル内に<?=header("Content-type: application/xhtml+xml");?>を入力すれば表示されるのですが、できれば.htaccess一つで済めばと思います、、、。 サーバーはKDDIウェブコミュニケーションズ(CPI)のX10プランを使用しています。このサーバーは注意事項として"弊社サーバーでは .htaccessファイルにてphp_valueおよびphp_flag はご利用いただけません"との文言がありました。(※php.iniの修正は可能のようです) 良い書き方があればお教え頂ければ幸いです。 何卒宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • 動的URLから静的URLへの301リダイレクト

    下記のように動的URLを静的なURLに置き換えています。 http://www.sample.com/dir/aaa/index.php?content_id=1 ↓ http://www.sample.com/aaa_index.content_id_1.htm この動的URLを、置き換えた静的URLへ301リダイレクトさせたいのですが、うまくいきません。 htaccessの記述を下記のようにしましたが、多分、動的URLの「?」があるためうまくいかないようです。 RewriteEngine on RewriteBase / RewriteRule ^dir/aaa/index\.php?content_id=(.*)$ /aaa_index.content_id_$1.htm [R=301,L] 「?」が含まれる動的URLから静的URLに301リダイレクトさせたい場合、どのように記述すれば良いでしょうか?

  • キャッシュの制御がうまくいきません

    毎回お世話になっております。 現在、Perlを用いてWebページを作成しておりますが、キャッシュの制御に困っております。 キャッシュを制御したいhtmlページのHEAD部分には ******************************************************* <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" content="no-cache"> <META HTTP-EQUIV="Expires" content="Mon, 1 Jan 1990 01:01:01 GMT"> ******************************************************* 上記のMETAタグを入れているのですが、次の画面へ行き「戻る」ボタンを押すと戻ってしまうのです・・・ Perl内に、 print "Cotent-Type: text/html; Pragma: nocahe\n\n"; を記述してもだめでした。 「教えて!goo」の中で次の画面に進むときに「replace()」で飛ばすと戻らない回答があったのですが、次の画面に行くときにPOSTでデータを受け渡さないといけないので、「このMethodはGETです」とエラーが表示されてしまいます。 様々なHPで検索して試してみたのですが、どれもだめでした・・・ なにかよい回答がありましたらよろしくおねがいいたします。

    • ベストアンサー
    • CGI
  • .htaccessで、404エラーページにユーザーが要求したページのア

    .htaccessで、404エラーページにユーザーが要求したページのアドレスを送る方法 今、htaccessで以下のような文を打ちました。 ErrorDocument 404 http://testa.com/index.php この.htaccessファイルは http://testb.com/に設置してあります。 それで、この転送先にPHPスクリプトを置いて転送を複雑化したいと思っています。 例えば、 http://testb.com/blog/ にアクセスを要求したら http://testa.com/index.php内で htaccessから送られてきたデータ(blog/等)を元に、 http://testc.com/blog/へのリンク・移転メッセージの表示をしたい。 それで、htaccessから送られてくるデータが分かればPHPは自力で作れます。 なので、htaccessからユーザーが要求したページのアドレスを404のエラーページに送る方法を教えてください。