18

これは、Using 301/303/307 redirects for dynamic short urlsのフォローアップの質問です。ここでは、宛先 URL が頻繁に変更される場合に短い URL リダイレクトを実装するための最良の方法を決定しようとしています。

301 リダイレクトと 307 リダイレクトはどちらも同じように動作するように見えますが、私に関係する問題は 301 リダイレクトのキャッシングです (ここに文書化されています)。キャッシュ?)、または no-cache ヘッダーを明示的に送信する ("Cache-Control: no-cache, must-revalidate")?

4

2 に答える 2

25

301キャッシングを避けようとしないでください。ユーザーエージェントにリダイレクトをキャッシュさせたくない場合は、301リダイレクトを使用しないでください。つまり、301キャッシュはそのままで、意味的には永続的なリダイレクトであるため、リンク先URLを変更する場合、301は使用するのに適切なステータスコードではありません。一方、デフォルトでは307の応答はキャッシュされません

于 2012-03-05T16:04:15.290 に答える
12

ブラウザのブックマークの更新や Google ボットの URL の変更など、301 リダイレクトがもたらす動作が必要であると同時に、リダイレクトを追跡したり、他の種類の機能を実行したりする場合は、いつでも追加できます。制御ヘッダーを「キャッシュなし」にキャッシュします

HTTP/1.0 301 Moved Permanently
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Location: http://example.com

php では次のようになります。

header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Location:'.$url, true, 301);

関連: https://stackoverflow.com/a/19003320/175071

于 2013-10-07T09:48:18.280 に答える