เบราว์เซอร์แคช HTTP 301s นานเท่าใด


380

ฉันกำลังแก้ไขข้อบกพร่องของ HTTP 301 Permanent Redirect หลังจากการทดสอบอย่างรวดเร็วดูเหมือนว่า Safari จะล้างแคชของ 301s เมื่อเริ่มต้นใหม่ แต่ Firefox ไม่

IE, Chrome, Firefox และ Safari จะล้างแคชของ 301 เมื่อใด

UPDATE: ตัวอย่างเช่นถ้าผมต้องการที่จะเปลี่ยนเส้นทางexample1.comไปexample2.comแต่ฉันตั้งใจตั้งค่าให้เปลี่ยนเส้นทางไปexample3.comที่เป็นปัญหา ฉันสามารถแก้ไขข้อผิดพลาดได้ แต่ใครก็ตามที่เคยเข้าชมexample1.comในระหว่างนี้จะได้แคชการเปลี่ยนเส้นทางที่ไม่ถูกต้องไปexample3.comดังนั้นพวกเขาจะไม่สามารถเข้าถึงอย่างใดอย่างหนึ่งexample1.comหรือexample2.comจนกว่าจะล้างแคชของพวกเขา จากการสอบสวนฉันพบว่าไม่มีCache-ControlและExpiresส่วนหัวที่กำหนดไว้ ส่วนหัวสำหรับการตอบสนอง 301 ที่ไม่ถูกต้องน่าจะเป็นเช่นนี้:

HTTP/1.1 301 Moved Permanently
Date: Wed, 27 Feb 2013 12:05:53 GMT
Server: Apache/2.2.21 (Unix) DAV/2 PHP/5.3.8
X-Powered-By: PHP/5.3.8
Location: http://example3.com/
Content-Type: text/html

การทดสอบของฉันแสดงให้เห็นว่า:

  • IE7, IE8, Android 2.3.4 ไม่แคชเลย
  • Firefox 18.0.2, Safari 5.1.7 (บน Windows 7) และ Opera 12.14 แคชทั้งหมดและล้างแคชเมื่อรีสตาร์ทเบราว์เซอร์
  • แคช IE10 และ Chrome 25 แต่ไม่ชัดเจนในการรีสตาร์ทเบราว์เซอร์ดังนั้นพวกเขาจะล้างเมื่อใด

7
กรุณาบอกโครเมี่ยมเราต้องการทางออกจากหลุมนรก 301 นี้: bugs.chromium.org/p/chromium/issues/ …
BT

@ BT เนื่องจากปัญหามีผลกับเบราว์เซอร์ทั้งหมดจริงๆแล้ว IETF เท่านั้นที่สามารถแก้ไขปัญหานี้ได้โดยกำหนดเวลาบังคับบางอย่างในแคช 301s ที่ไม่มี TTL ดังนั้นเบราว์เซอร์จะยืนยันสมมติฐานแคชในที่สุด
McGuireV10

1
ฉันเริ่มต้นการสนทนาในรายชื่อผู้รับจดหมาย IETF เกี่ยวกับเรื่องนี้หากใครก็ตามที่ยังติดตามปัญหานี้รู้สึกว่ากำลังชั่งน้ำหนัก: lists.w3.org/Archives/Public/ietf-http-wg/2017OctDec/0363.html
McGuireV10

คำตอบ:


299

อย่างน้อยสองเบราว์เซอร์ - Chrome และ Firefox - แคชจะเปลี่ยนเส้นทาง 301 ด้วยไม่มีวันหมดอายุ

นั่นคือมันจะยังคงถูกแคชไว้ตราบเท่าที่แคชของเบราว์เซอร์สามารถรองรับได้ จะถูกลบออกจากแคชหากคุณล้างแคชด้วยตนเองหรือหากรายการแคชถูกลบทิ้งเพื่อให้มีที่ว่างสำหรับรายการใหม่

คุณสามารถยืนยันสิ่งนี้ได้อย่างน้อยใน Firefox โดยไปที่ about:cacheและค้นหาภายใต้ดิสก์แคช

ฉันไม่รู้เกี่ยวกับพฤติกรรมของเบราว์เซอร์อื่นเช่น IE10 / IE11 อย่างไรก็ตามเนื่องจากเบราว์เซอร์อื่น ๆ ทำการแคชแคชไปเรื่อย ๆ คุณจะต้องรองรับสิ่งนี้ต่อไป

ในเบราว์เซอร์ทั้งหมดรวมถึง Chrome / Firefox ยังคงเป็นไปได้ที่จะแทนที่พฤติกรรมเริ่มต้นนี้โดยใช้ส่วนหัวตามที่อธิบายไว้ด้านล่าง:

หมายเหตุ: คำตอบนี้เขียนขึ้นในปี 2014 และพฤติกรรมของเบราว์เซอร์อาจเปลี่ยนแปลงตลอดเวลา

หากคุณไม่ต้องการให้การเปลี่ยนเส้นทางถูกแคช

การแคชที่ไม่ จำกัด นี้เป็นเพียงการแคชเริ่มต้นโดยเบราว์เซอร์เหล่านี้ในกรณีที่ไม่มีส่วนหัวของการควบคุมแคช ตรรกะคือคุณกำลังระบุการเปลี่ยนเส้นทาง "ถาวร" และไม่ให้คำแนะนำการแคชอื่น ๆ แก่พวกเขาดังนั้นพวกเขาจะปฏิบัติกับมันราวกับว่าคุณต้องการแคชไว้อย่างไม่มีกำหนด

เบราว์เซอร์ยังคงให้เกียรติ Cache-Control และ Expires header เหมือนกับการตอบสนองอื่น ๆ หากมีการระบุไว้

คุณสามารถเพิ่มส่วนหัวเช่นCache-Control: max-age=3600หรือExpires: Thu, 01 Dec 2014 16:00:00 GMTเปลี่ยนเส้นทาง 301 ของคุณ คุณสามารถเพิ่มได้Cache-Control: no-cacheดังนั้นเบราว์เซอร์จะไม่ถูกแคชถาวรหรือCache-Control: no-storeไม่สามารถจัดเก็บในที่จัดเก็บชั่วคราวได้

อย่างไรก็ตามทางเลือกที่ดีกว่าในความคิดของฉันคือการใช้การเปลี่ยนเส้นทาง 302 หรือ 307 สิ่งเหล่านี้ไม่ได้หมายถึงเบราว์เซอร์หรือแคชว่าเป็นการเปลี่ยนเส้นทางแบบ "ถาวร" ดังนั้นจึงไม่ควรใช้แคชในส่วนที่ไม่มีส่วนหัวของตัวควบคุมแคช

สำหรับฉันแล้วดูเหมือนว่าการออกการเปลี่ยนเส้นทาง 301 แต่การทำเครื่องหมายว่าไม่สามารถแคชได้นั้นขัดแย้งกับจิตวิญญาณของการเปลี่ยนเส้นทาง 301 สำหรับการใช้งานแม้ว่ามันจะใช้ได้ในทางเทคนิคก็ตาม YMMV และคุณอาจพบว่ามีกรณีขอบที่เหมาะสมสำหรับการเปลี่ยนเส้นทาง "ถาวร" เพื่อให้มีการ จำกัด เวลา

หากก่อนหน้านี้คุณได้ออกการเปลี่ยนเส้นทาง 301 แต่ต้องการยกเลิกสิ่งนั้น

หากผู้คนยังคงมีการเปลี่ยนเส้นทาง 301 ที่แคชไว้ในเบราว์เซอร์พวกเขาจะยังคงถูกนำไปยังหน้าเป้าหมายโดยไม่คำนึงว่าหน้าแหล่งที่มานั้นยังคงมีการเปลี่ยนเส้นทางอยู่ ตัวเลือกของคุณสำหรับการแก้ไขนี้รวมถึง:

  • ทางออกที่ง่ายและดีที่สุดคือการออก 301 redirect อีกครั้ง

    เบราว์เซอร์จะรู้ว่ามันกำลังถูกนำกลับไปยังสิ่งที่คิดก่อนหน้านี้ว่าเป็น URL ที่ไม่รับผิดชอบและสิ่งนี้จะทำให้มันดึง URL นั้นอีกครั้งเพื่อยืนยันว่าการเปลี่ยนเส้นทางเก่ายังไม่อยู่ที่นั่น

    แก้ไข: ความคิดเห็นบางอย่างทำให้เกิดข้อสงสัยดูด้านล่าง

  • หากคุณไม่สามารถควบคุมไซต์ที่เป้าหมายการเปลี่ยนเส้นทางก่อนหน้านี้ไปแสดงว่าคุณโชคดี ลองและขอให้เจ้าของเว็บไซต์เปลี่ยนเส้นทางกลับมาหาคุณ

การป้องกันยังดีกว่าการรักษา - หลีกเลี่ยงการเปลี่ยนเส้นทาง 301 หากคุณไม่แน่ใจว่าคุณต้องการยกเลิกการมอบหมาย URL เก่าอย่างถาวร


18
นอกจากนี้คุณมีข้อมูลอ้างอิงใด ๆ ที่แสดงว่าเบราว์เซอร์จัดการการเปลี่ยนเส้นทางถาวรแบบวงกลมโดยดึง URL เดิมมาใหม่หรือไม่
Kevin Christopher Henry

7
301 การเปลี่ยนเส้นทางกลับไม่ทำงานเบราว์เซอร์ยังคงแคชการเปลี่ยนเส้นทางเก่า 301 และฉันเห็นวงวนไม่สิ้นสุด
Yuriy Kolodovskyy

5
วิธีการที่ฉันได้ทดสอบ: บางเวลาที่ผ่านมาผมก็ทำให้ 301 เปลี่ยนเส้นทางสำหรับการhttp://www.SOMEHOST.com https://www.SOMEHOST.comแต่ตอนนี้http://www.SOMEHOST.comต้องเป็นโฮสต์หลักสำหรับไซต์ ดังนั้นเปลี่ยนเส้นทางจาก https เป็น http ถูกลบแล้ว ในขณะที่คุณแสดงฉันได้เปลี่ยนเส้นทาง 301 จากhttps://www.SOMEHOST.comไปยังhttp://www.SOMEHOST.comแต่ดูลูป เบราว์เซอร์ไม่ได้เรียกข้อมูลซ้ำ ...
Yuriy Kolodovskyy

8
ฉันยืนยันว่าการเปลี่ยนเส้นทางกลับ (ด้วยการเปลี่ยนเส้นทาง PHP ในกรณีของฉัน) ทำงานได้อย่างสมบูรณ์บน Google Chrome ตราบใดที่ (ชัดแจ้ง) คุณได้ลบการเปลี่ยนเส้นทาง 301 เริ่มต้นออก
Vincent Poirier

15
ฉันสามารถยืนยันได้ว่าการเปลี่ยนเส้นทางกลับทำงานได้อย่างสมบูรณ์แบบ เบราว์เซอร์ที่เห็นการวนรอบการเปลี่ยนเส้นทางทำให้รายการแคชใช้ไม่ได้ ผ่านการทดสอบบน IE11, Firefox 52, Safari 10, Chrome 57
Munhitsu

258

จาก Chrome 71

หากต้องการล้างการเปลี่ยนเส้นทางแบบถาวรให้ไปที่ chrome: // settings / clearBrowserData และจากนั้นจะมีเพียงการล้าง "รูปภาพและไฟล์แคช" เพื่อล้างการเปลี่ยนเส้นทาง

Chrome 48-70

ไปที่ chrome: // net-internals ที่ด้านขวาของแถบสถานะสีแดงด้านบนคลิกที่ลูกศรลง▼เพื่อเปิดเมนูแบบเลื่อนลงและภายใต้กลุ่ม "เครื่องมือ" เลือก "ล้างแคช"

ในฐานะของรุ่น 48 นี่เป็นสิ่งเดียวที่ทำงานให้ฉันเพื่อล้างแคช 301


14
ในฐานะที่เป็นของ Chrome รุ่น 54 นี้น่าเสียดายที่มันไม่ทำงานสำหรับฉัน
pwagner

4
ในความคิดที่สองฉันไม่ได้ตอบคำถามจริงๆ "เบราว์เซอร์ทำแคช 301 ได้นานเท่าใด" และคำตอบของฉันจะไม่ช่วยใครก็ตามที่เปลี่ยนเส้นทางไซต์สาธารณะซึ่งคุณอาจต้องการวิธียกเลิก 301 อย่างถาวร โดยไม่ทราบว่ามีเบราว์เซอร์จำนวนมากใน wild ที่แคชการเปลี่ยนเส้นทาง - คำตอบอื่น ๆ จะตอบบางส่วนของสถานการณ์นั้น คำตอบของฉันมีประโยชน์เฉพาะกับนักพัฒนาหรือสถานการณ์อินทราเน็ตที่คุณสามารถสื่อสารกับผู้ใช้ที่ได้รับผลกระทบทั้งหมด
McGuireV10

1
ทำงานใน Chrome รุ่น 68.0.3440.106 (รุ่นเป็นทางการ)
Thum Choon Tat

12
chrome: // net-internals ได้รับความนิยมใน Chrome 71 แล้วส่วนของ drop-down / Tools นั้นหายไป มี DNS> ตัวแก้ปัญหาการโฮสต์แคช> ล้างปุ่มแคชโฮสต์ แต่วิธีนี้ไม่สามารถลบแคช 301s ได้
t-jam

52
ใน Chrome 71, chrome: // settings / clearBrowserData และจากนั้นมีเพียงการล้าง "ภาพและไฟล์แคช" ล้างการเปลี่ยนเส้นทาง
Bemmu

179

คำตอบที่ช่วยให้ผู้ที่ต้องการกำจัดแคชการเปลี่ยนเส้นทางอย่างสิ้นหวัง:

Chrome ทำการแคชการเปลี่ยนเส้นทาง 301 ไปเรื่อย ๆ (ในแคชดิสก์ในเครื่อง) หากต้องการล้างแคชนี้:

  • เปิดDevToolsของคุณ(กดF12 )
  • บนแท็บเครือข่ายตรวจสอบเลือกช่องทำเครื่องหมาย"ปิดใช้งานแคช"
  • เปิด DevTools ค้างไว้และโหลดหน้าซ้ำ (กดF5)

เมื่อทุกอย่างเรียบร้อยคุณสามารถยกเลิกการเลือก "ปิดใช้งานแคช" และทุกอย่างจะทำงานต่อไปตามที่คาดไว้


14
การทำงานนี้และแม้หลังจากเปิดใช้งานแคชแล้วการเปลี่ยนเส้นทางจะหายไป ขอบคุณ!
migg

2
ดูเหมือนว่านี่จะไม่ทำงานสำหรับโดเมนที่ชี้ไปที่ 127.0.0.1 ผ่านไฟล์โฮสต์ในเครื่อง มีตัวเลือกอื่นสำหรับกรณีนี้หรือไม่?
pwagner

ไม่ทำงานหากการเปลี่ยนเส้นทางโดยไม่ตั้งใจชี้ไปที่พอร์ตอื่นเช่นจาก( localhost:8000ไปยังlocalhostพอร์ต 80) ฉันยังล้างข้อมูลไซต์ / แอปพลิเคชันทั้งหมดจากทั้ง localhost และ localhost: 8000 แต่ก็ไม่ได้ช่วยอะไร
Dennis98

3
โซลูชันนี้ใช้งานได้กับ Chrome ตั้งแต่วันที่ 16 พฤศจิกายน 2019 รุ่น 78.0.3904.97 โซลูชันอื่น ๆ จะไม่สามารถใช้งานได้อีกต่อไป หลังจากที่คุณใช้งานได้คุณสามารถปิดเครื่องมือสำหรับนักพัฒนาและมันจะทำงานต่อไปได้อย่างถูกต้อง
Peter Wooster

คำตอบที่ยอมรับ
Aysennoussi

43

ทำให้ผู้ใช้ส่งแบบฟอร์มโพสต์ใน url นั้นและการเปลี่ยนเส้นทางแคชหายไป :)

<body onload="document.forms[0].submit()">
<form action="https://forum.pirati.cz/unreadposts.html" method="post">
    <input type="submit" value="fix" />
</form>
</body>

2
ฉันยอมรับว่านี่เป็นวิธีที่ดีที่สุดที่ฉันพบว่าคลายเกลียวออก
esjay

แตกต่างจากคำตอบอื่น ๆ วิธีนี้เหมาะสำหรับการแก้ปัญหาของผู้อื่นโดยไม่ต้องเปิดคอนโซลนักพัฒนาซอฟต์แวร์! ขอบคุณ
Alexey Rytikov

4
ดึงข้อมูล ('URL', {เมธอด: 'POST'}) oughta ใช้กลอุบายด้วยวิธีเดียวกัน ขอบคุณ! สิ่งนี้ช่วยให้ฉันปวดหัว!
calvin

ฉันไม่อยากจะเชื่อเลยว่านี่เป็นวิธีเดียวที่ใช้ได้ผลสำหรับฉัน (ฉันลองวิธีอื่นทั้งหมดก่อน - แม้การดึงข้อมูลคอนโซล () ล้มเหลวเนื่องจากนโยบายความปลอดภัยข้ามไซต์)
user36388

24

301คือการตอบสนองที่แคชได้ต่อ HTTP RFC และเบราว์เซอร์จะทำการแคชขึ้นอยู่กับส่วนหัวแคช HTTP ที่คุณมีต่อการตอบสนอง ใช้ FireBug หรือ Charles เพื่อตรวจสอบส่วนหัวการตอบสนองเพื่อทราบระยะเวลาที่แน่นอนที่การตอบสนองจะถูกแคชไว้

หากคุณต้องการควบคุมระยะเวลาการแคชคุณสามารถใช้ส่วนหัวการตอบสนอง HTTP Cache-ControlและExpiresทำเช่นเดียวกัน อีกวิธีหนึ่งถ้าคุณไม่ต้องการแคชการ301ตอบสนองเลยให้ใช้ส่วนหัวต่อไปนี้

Cache-Control: no-store, no-cache, must-revalidate
Expires: Thu, 01 Jan 1970 00:00:00 GMT

12
แม้ว่าจะถูกต้องทางเทคนิคคำตอบของคุณไม่ตอบคำถามผู้ใช้และด้วยเหตุนี้ไม่ตอบคำถามที่ฉันมาที่นี่ เมื่อใดที่มีอยู่ un-cache 301-header ในเบราว์เซอร์จะหมดอายุสำหรับเบราว์เซอร์หลัก
ปล้น

หากใครยังสนใจคำแนะนำการเชื่อมโยงนี้สามารถสลับแคชสำหรับ 301
Francisco Presencia

ลิงค์สำหรับ FF และมันไม่ได้ผลสำหรับฉัน ติดตั้งส่วนขยายนักพัฒนาเว็บ 1.2.5 และใช้ FF 23.0.1
phu

คำถามไม่ได้รับคำตอบ คำถามคือการเปลี่ยนเส้นทางแคชจะใช้เวลานานเท่าใดหากไม่มีการระบุวันหมดอายุ
Dennis Flagg

21

มีวิธีง่าย ๆ ในการลบแคชของเบราว์เซอร์สำหรับการเปลี่ยนเส้นทาง http เช่น 301, 307 เป็นต้น

คุณสามารถเปิดแผงเครือข่ายในคอนโซลนักพัฒนาซอฟต์แวร์ใน chrome เลือกการโทรเครือข่าย คลิกขวาที่มันแล้วคลิกที่ล้างเบราว์เซอร์แคชเพื่อลบการเปลี่ยนเส้นทางแคช

เมนูบริบทการโทรของเครือข่าย


1
ขอบคุณมาก! ทางออกที่ง่ายและทำงานได้! วิธีนี้ควรทำงานในอนาคตด้วย
sgon00

16

ได้รับการยืนยัน !! ทำให้ผู้ใช้ส่งคำขอโพสต์ไปยัง URL ที่ได้รับผลกระทบและการเปลี่ยนเส้นทางแคชจะถูกลืม

การชนะอย่างรวดเร็วคือการป้อนสิ่งนี้ในคอนโซลของเบราว์เซอร์หากคุณสามารถ:

fetch('example.com/affected/link', {method: 'post'}).then(() => {})

มีประโยชน์ถ้าคุณรู้จักเบราว์เซอร์ที่ได้รับผลกระทบ (โดยเฉพาะในระหว่างการพัฒนา)

หรือหากคุณเข้าสู่หน้าการเปลี่ยนเส้นทาง 301 ก่อนหน้าคุณสามารถเพิ่มสคริปต์นี้ในหน้านั้นและทุกครั้งที่มีการเยี่ยมชมแคช 301 จะถูกลืม


นี่คล้ายกับแบบฟอร์มการโพสต์ด้านบนมีความพยายามน้อยกว่า
jpswade

นั่นถูกต้อง @jpswade
Emeke Ajeh

12

ฉันจะโพสต์คำตอบที่ช่วยฉัน:

ไปที่ url:

chrome://settings/clearBrowserData

มันควรจะเรียกป๊อปอัปแล้ว ..

  • เลือกเท่านั้น: cached images and files.
  • เลือกกล่องเวลา: from beginning

ทำงานกับ Chrome 79!
webaholik

ทำงานกับ Chrome 80 ขอบคุณ!
โจเซฟ

6

เป็นคำตอบของ @thomasrutter

หากก่อนหน้านี้คุณได้ออกการเปลี่ยนเส้นทาง 301 แต่ต้องการยกเลิกสิ่งนั้น

หากผู้คนยังคงมีการเปลี่ยนเส้นทาง 301 ที่แคชไว้ในเบราว์เซอร์พวกเขาจะยังคงถูกนำไปยังหน้าเป้าหมายโดยไม่คำนึงว่าหน้าแหล่งที่มานั้นยังคงมีการเปลี่ยนเส้นทางอยู่ ตัวเลือกของคุณสำหรับการแก้ไขนี้รวมถึง:

ทางออกที่ง่ายและดีที่สุดคือการออก 301 redirect อีกครั้ง

เบราว์เซอร์จะรู้ว่ามันกำลังถูกนำกลับไปยังสิ่งที่เคยคิดว่าเคยเป็น URL ที่เลิกใช้แล้วและสิ่งนี้น่าจะทำให้มันดึง URL นั้นอีกครั้งเพื่อยืนยันว่าการเปลี่ยนเส้นทางเก่ายังไม่อยู่ที่นั่น

หากคุณไม่สามารถควบคุมไซต์ที่เป้าหมายการเปลี่ยนเส้นทางก่อนหน้านี้ไปแสดงว่าคุณโชคดี ลองและขอให้เจ้าของเว็บไซต์เปลี่ยนเส้นทางกลับมาหาคุณ

ในความเป็นจริงนี่หมายถึง:

  1. a.com 301 ถึง b.com

  2. ลบ a.com's 301

  3. เพิ่ม b.com 301 ไปยัง a.com

จากนั้นก็ใช้งานได้


2
แต่คุณก็ยังมี b.com อยู่ประมาณ 301 คน: (- สิ่งสกปรก
BT

1
คุณสามารถล้างการเปลี่ยนเส้นทางโดยออก 301 อีกหน้าจากหน้าอื่นได้หรือไม่ เช่น ( a.com301 -> b.com) (ลบa.com301) (เพิ่มa.com/abcdefg301 -> a.com) แล้วบังคับให้ลูกค้าดูa.com/abcdefgอย่างใด
nemec

ขอบคุณมันใช้งานได้! ผ่านการทดสอบบน IE11, Firefox 52, Safari 10, Chrome 57
Munhitsu

ฉันมีสถานการณ์ที่ต้องการใช้ทั้ง a.com และ b.com ดังนั้น b.com 301 a.com จึงไม่ใช่ตัวเลือก ทางออกของเราคือย้ายไปที่ HTTPS - เราไม่มีการเปลี่ยนเส้นทางบน HTTPS
rosell.dk

6

ฉันมีวิธีง่ายๆที่ทำงานบนเบราว์เซอร์ที่สำคัญทั้งหมด (เวอร์ชั่นล่าสุด) รวมถึง IE, Chrome และ FF

  1. Ctrl + Shift + Del
  2. -
    1. Chrome: เลือก "ประวัติการเข้าชม" และ "แคช ... "
    2. IE: ฉันออกจากตัวเลือกเริ่มต้น "ไฟล์อินเทอร์เน็ตชั่วคราวและไฟล์เว็บไซต์", "คุกกี้และข้อมูลเว็บไซต์", "ประวัติ"
    3. FF: "ประวัติการเข้าชมและดาวน์โหลด", "Cache"
  3. คลิก "ลบ"
  4. ปิดและเปิดเบราว์เซอร์ของคุณอีกครั้ง มันควรจะทำงาน

คุณควรตรวจสอบให้แน่ใจว่าคุณไม่ได้อยู่ในหน้าดังกล่าวเนื่องจากเบราว์เซอร์บางตัวไม่ล้างรายการที่แคชไว้จากหน้าเปิด
Oliver Schimmer

6

สำหรับวัตถุประสงค์ในการทดสอบ (เพื่อหลีกเลี่ยงการเปลี่ยนเส้นทางแคช) ผู้คนสามารถเปิดหน้าต่างส่วนตัวใหม่ : คลิกCTRL+SHIFT+N[ถ้าคุณใช้ Mozilla ให้ใช้P]


สิ่งนี้ถูกลดระดับลงอาจเป็นเพราะคำสัญญาหลักของ "หน้าต่างส่วนตัว" ไม่ใช่การเขียนไปยังแคช แต่ยังสามารถอ่าน / นำกลับมาใช้ใหม่ได้ แต่สำหรับฉันใน Firefox 37.0.1 (Linux) สิ่งนี้ใช้ได้และรวดเร็วและมีประโยชน์ หน้าต่างส่วนตัวสะท้อนการตั้งค่าปัจจุบัน / ไม่ได้ใช้งานของเว็บเซิร์ฟเวอร์ในขณะที่แท็บเบราว์เซอร์ปกติใช้การเปลี่ยนเส้นทางแคช 301
alfonx

alfonx: หน้าต่างส่วนตัวอาจไม่สามารถนำแคชกลับมาใช้ใหม่ได้เนื่องจากเจ้าของเซิร์ฟเวอร์สามารถใช้องค์ประกอบในลักษณะคุกกี้เปิดเผยว่าข้อมูลประจำตัวก่อนหน้าของผู้ใช้นั้น แม้ว่าฉันจะต้องยอมรับว่าการใช้แคชซ้ำนั้นอาจปลอดภัยต่อภรรยาที่เกลียดชัง
Zdenek

6
วิธีนี้ใช้ไม่ได้หากคุณมีแคชอยู่แล้ว 301 ส่วนตัวจะใช้การเปลี่ยนเส้นทางที่ถูกแคชจริง ๆ
jeffmcneill

1

ทดสอบการเปลี่ยนเส้นทางของคุณโดยใช้โหมดไม่ระบุตัวตน / InPrivate ดังนั้นเมื่อคุณปิดเบราว์เซอร์จะเป็นการล้างแคชนั้นและการเปิดหน้าต่างอีกครั้งจะไม่มีแคช


1

ตามคำตอบอื่น ๆ แสดงให้เห็น การแคชอาจไม่สิ้นสุดในเบราว์เซอร์ สิ่งนี้เป็นอันตรายอย่างยิ่ง ดังนั้นอย่าทำ อย่างน้อยเพิ่มส่วนหัวแคช ใน htaccess ฉันมักจะทำเช่นนี้กับตอนนี้แคชเลย:

<IfModule mod_rewrite.c>
  RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
  # The E=nocache:1 sets the environment variable nocache to the value of one
  RewriteRule ^/?(.*) https://www.example.org/$1 [L,R=301,E=nocache:1]
</IfModule>


<IfModule mod_headers.c>
  ## Set the response header if the "nocache" environment variable is set
  ## in the RewriteRule above.
  Header always set Cache-Control "no-store, no-cache, must-revalidate" env=nocache

  ## Set Expires too ...
  Header always set Expires "Thu, 01 Jan 1970 00:00:00 GMT" env=nocache
</IfModule>

1

เพื่อแก้ไขปัญหาสำหรับที่อยู่ localhost ฉันเปลี่ยนหมายเลขพอร์ตที่ไซต์ทำงานอยู่ สิ่งนี้ใช้ได้กับ Chrome รุ่น 73.0.3683.86


-1

ใน Google Chrome เวอร์ชัน 79 ล่าสุดคุณสามารถใช้chrome: // net-internals และเลือกบน DNS จากแผงด้านซ้ายแล้วแตะปุ่มล้างโฮสต์แคช

สกรีนช็อตของ chrome เปิดหน้า net-internals


ไม่แน่ใจว่าทำไม downvote นี้ Http 301 เป็นปัญหาเกี่ยวกับแคชโฮสต์ DNS
Mohammad Ersan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.