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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

834閲覧

既存ユーザーをhtaccessによるリダイレクトしたのですが、(ブラウザ?の)cacheをクリアしなければ反映されない場合があるので、対応策が知りたいです

pegy

総合スコア243

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2020/02/21 11:06

編集2020/02/21 14:44

1.経緯を申し上げますと、レンタルサーバーでとるべきディレクトリの構造に不適切な点があり
以下の変更前のURLから変更後のURLに.htaccessでリダイレクトさせることとしました。

●変更前のURL
https://www.example.com/hoge/bar.php
●変更後のURL
https://www.example.com/hoge/main/bar.php

htaccess

1<IfModule mod_rewrite.c> 2RewriteEngine on 3RewriteCond %{HTTPS} off 4RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 5RewriteRule bar.php https://www.example.com/hoge/main/bar.php [R=301,L] 6</IfModule>

■使用しているレンタルサーバー:ロリポップサーバー(スタンダードプラン)

2.実際には/mainのディレクトリを通すだけの単純な問題でもないのですが、ここでは単純化したものとして
これを前提とさせていただくとともに、変更前のURLのファイルは削除する必要があるという点を所与のものとして質問をさせてください。

3.以前、.htaccessの記法についてご質問をさせていただき、この時に正しい.htaccessのコードでリダイレクトせずに、最終的にcacheの問題で、.htaccessが正しく実行されないことがあり、ブラウザのcacheをクリアすることで解決することができました。

ここで、重大な問題に気がついたのですが、既存のユーザーを自然にサーバー内で、ファイルの場所が移転したことを、意識させずにリダイレクトさせることが目的で.htaccessのリダイレクトさせているはずがどのユーザーのクライアントにもcacheの問題があり私と同じように、ブラウザにキャッシュをクリアしてもらわなければ.htaccessのリダイレクト自体になんの意味もないことに。。

とはいうものの、サイトの移転やディレクトリ構造の変化において、htaccessによるリダイレクトについては一般的な記事としてもレンタルサーバー側の案内としても当然ある以上、問題の解決方法が何かあるものではないか?という疑問から、実務的な対策をアドバイスをいただきたく問い合わせさせていただきました。
少し今回クセがあるのが、元のURLのファイルを遅かれ早かれ削除する必要があり、このファイルにリダイレクトを直接書き込むことができないという状況だけ申し添えさせてください。

よろしくお願い申し上げます。

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

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

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

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

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

tanat

2020/02/21 13:38

1. casheはcacheのスペルミスだと思うので「cache」もしくは「キャッシュ」と修正されることをお勧めします。(正しいスペルは結構重要です) 2. 質問としては、「ブラウザにキャッシュをさせないためにはどうすればいいか?」という認識で正しいですか?であればタイトルは質問の内容そのものに修正されることをお勧めします。(経緯が書かれて入いることはありがたいのですが、タイトルから質問がわからないのは回答を得にくくなります) 3. キャッシュについてはレンタルサーバーの会社名、プランと現在の.htaccessが最低限必要なので追記をお願いします。(サーバにたどり着く前にキャッシュする仕組みを提供しているレンタルサーバもあるため、対応方法が変わります。) 4. キャッシュが具体的にどう効いているかが不明なので、「開発者ツール httpヘッダ 確認 」などで調べて、httpヘッダを追記をお願いします。(ドメイン名や具体的なURL等は伏字にしても問題ありません)
pegy

2020/02/21 14:58

コメントありがとうございます。 >1. 大変失礼いたしました、正しい綴りに修正いたしました。 >2. 非常にお伝えしづらいのですが、自分なりにわかりやすい表現にタイトルを変更してみました。サーバーのcacheの存在や仕組みを投稿時点で理解できていなかったため、この点は正しく質問ができない可能性があったため、少しわかりづらい表現になってしまい申し訳ございません。(投稿時点では素人なりにhtaccessが正しく動作してくれなかったのはブラウザ側のcacheの問題であったと解釈しておりました) >3.追記させていただきました。不十分な記載、大変失礼いたました。 >4.上記の2.にも関連する話なとなります。私自身がブラウザでhtaccessに変更を確認することができず「htaccess 反映されない」などで検索してcacheをクリアする必要がある様な記事を見つけたため、ブラウザの過去のcacheを全てクリアしたところ動作させることができました。従って、現状cacheが意図せず効いてしまっているという状態ではないため、うまくヘッダーで出力することができませんでした。この経緯は全てChromeで実施していたのですが、同じ様に過去に対象となっているページを閲覧したことがある(cacheされたことが期待される)safariで試したところ、cacheをクリアせずにhtaccess が反映されており、意図したリダイレクトが実行されました。 質問をさせていただきながら、この点は誠に申し訳ないのですが、私自身も過去に戻って環境を再現することができず、正しく問題が切り分けられなくなっています。かような状況で本質問が不適合であれば取り下げさせていただきます。
guest

回答1

0

ベストアンサー

アクセラレータが設定されているのであれば、無効にしてみてください。

投稿2020/02/21 15:00

tanat

総合スコア18716

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

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

pegy

2020/02/21 15:08

私自身の借りているサーバーにも関わらず、この様な設定ができることをお恥ずかしながら初めて知りました。そもそもですが、サーバー側にもcacheという仕組みがあることも知らなかったので、ありがとうございます。設定を無効にしてみて、今後の変化を追ってみます。 また、同じ問題がどの様な状況で生じるかわわからないため、いったんクローズをさせていただきますが、これで問題が生じない様であれば、時期を見て本記事に追って追記をさせていただきます。 改めて御礼申し上げます。よろしくお願い申し上げます。
tanat

2020/02/21 15:15

解決しない場合は、.htaccessの全文を質問に記載してみてください(すでに全文なら、その旨も一緒に記載) 今回は関係無いかもですが、301リダイレクトはブラウザがリダイレクト自体を強くキャッシュしてしまうので、.htaccessの設定が正しいと確認されるまでは302で確認されることをお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問