質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

9220閲覧

IE11でWeb ページの有効期限が切れていますとでてしまう

miguel_2018

総合スコア13

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/10/23 11:00

お世話になっております。
form入力画面で必要事項を入力して、submitすると確認画面へ遷移します。
確認画面で、やり直すをおすと入力画面にまた遷移します。
このときにブラウザバックをすると”Web ページの有効期限が切れています”と表示されてしまいます。
対策としてheaderにブラウザのキャッシュを無効にする設定を入れるようにしました。
しかしchromeブラウザではWeb ページの有効期限が切れていますが表示されなくなりましたが、IE11だけは直りません。
ためしで少し内容を変えてみましたがダメでした。(コメントアウトしているほうもしていないほうもchrome=OK,IE11=ダメ)

どんなやり方でも良いのでIEでもこれを表示させないようにしたいです・・
ご教授をお願いできますでしょうか?

宜しくお願い致します。

以下Laravelのミドルウェアにheaderを付与する処理を追加

php

1 1 <?php 2 2 3 3 namespace App\Http\Middleware; 4 4 5 5 use Closure; 6 6 7 7 class RevalidateBackHistory 8 8 { 9 9 /** 10 10 * Handle an incoming request. 11 11 * 12 12 * @param \Illuminate\Http\Request $request 13 13 * @param \Closure $next 14 14 * @return mixed 15 15 */ 16 16 public function handle($request, Closure $next) 17 17 { 18 18 $response = $next($request); 19 19 /* chromeだとOK IE11だとだめ 20 20 return $response->header('Cache-Control','no-cache, no-store,max-age=0,must-revalidate') 21 21 ->header('Pragma','no-cache') 22 22 ->header('Expired', 'Fri, 01 Jan 1990 00:00:00 GMT'); 23 23 */ 24 24 return $response->header('Cache-Control','no-cache') 25 25 ->header('Pragma','no-cache') 26 26 ->header('Expired', 'Fri, 01 Jan 1990 00:00:00 GMT') 27 27 ->header('If-Modified-Since','0') 28 28 ->header('Expires','-1'); 29 29 } 30 30 }

因みにhtmlのmetaタグも試しましたがダメでした。

html

1<meta http-equiv="Pragma" content="no-cache"> 2<meta http-equiv="Cache-Control" content="no-cache"> 3<meta http-equiv="Expires" content="-1">

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

IEがどうやってもキャッシュしてしまうので、headerでどうにかするのは諦めました。
変わりに入力画面でのsubmitはそのままPOSTさせて、そのリクエストを受けた時に確認画面へはサーバ側でリダイレクトをさせて、post値はsessionからとるようにしました。

php

1// リダイレクト 2return redirect()->route('confirm')->withInput();

php

1public function confirm(Request $request){ 2 // postした時のname='address'のフィールドを取得 3 $address = ($request->session()->has('_old_input.address'))?Session::get('_old_input')['address']:null; 4 return view('confirm', compact('address')); 5}

投稿2018/10/23 20:10

編集2018/10/23 20:14
miguel_2018

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ブラウザの仕様で、ieはよく起こる現象です。対策としてはie以外のブラウザを使うか、以下のリンク先等を参考にしてみてください。

参考:
「ページを表示できません」「ページの有効期限が切れています」というエラーの対処方法
ホームページ閲覧中、「ページの有効期限切れ」と表示される場合の対処方法

投稿2018/10/23 14:05

yoshinavi

総合スコア3521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miguel_2018

2018/10/23 14:17

ごめんなさい、”どんなやり方でも良いので”と言ってしまったのでうまく伝わっていなかったかもしれません。ユーザ側に何かしてもらって表示できるようにさせるというよりは、使う側が何もせずに、ページの有効期限が切れていますというページが発生しないようにさせたいと考えております。
yoshinavi

2018/10/23 14:26

リンクで「戻る」を設定して、ブラウザバックはしないように注意喚起するのが、良いかと思います。
miguel_2018

2018/10/23 20:12

そうなんですが、今回の場合そうは行かずに・・方法探してみます・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問