กำจัดการเปลี่ยนเส้นทาง 301

ฉันได้ตั้งโปรแกรมการเปลี่ยนเส้นทาง 301 ที่เป็นเท็จใน .htaccess

เนื่องจากเป็นแบบถาวร เบราว์เซอร์/พร็อกซีของฉันจึงเปลี่ยนเส้นทางฉันไปยังที่อยู่ปลอมเสมอ แม้ว่าฉันจะเปลี่ยนที่อยู่ตำแหน่งเปลี่ยนเส้นทางใน .htaccess

ฉันจะกำจัดการเปลี่ยนเส้นทาง 301 เก่า/เท็จนี้ได้อย่างไร

การตั้งค่าชัดเจน: ฉันรู้วิธี 301 ใน .httacces ด้วย mod_rewrite ฉันต้องการยกเลิก-301


person yunzen    schedule 11.05.2012    source แหล่งที่มา
comment
เบราว์เซอร์แคช 301 เปลี่ยนเส้นทางภายในเครื่องสำหรับ URI แต่ละรายการของคุณ ดังนั้นคุณจึงต้องล้างแคชของเบราว์เซอร์ด้วยตนเอง อย่างไรก็ตาม หากคุณต้องการทำเช่นนี้กับไคลเอนต์ทั้งหมดของคุณ ฉันเดาว่าคุณจะต้องแจ้งให้เบราว์เซอร์เหล่านั้นยกเลิกแคชสำหรับเพจที่ได้รับผลกระทบทั้งหมดของคุณ   -  person anubhava    schedule 11.05.2012
comment
โปรดตรวจสอบ: stackoverflow.com/ คำถาม/9131037/ สำหรับการทำให้แคชของเบราว์เซอร์ใช้ไม่ได้   -  person anubhava    schedule 11.05.2012
comment
@anubhava: นั่นไม่ได้ช่วยในกรณีนี้ - พวกเขากำลังเปลี่ยน URL ของเนื้อหา - yunzen ต้องการเปลี่ยนเนื้อหาและเก็บ URL ไว้   -  person symcbean    schedule 11.05.2012
comment
@symcbean โดยไม่ต้องเปลี่ยน BASE URI, OP สามารถเพิ่มพารามิเตอร์การสืบค้นจำลองเพื่อบังคับให้เบราว์เซอร์ดึงข้อมูลอีกครั้งจากเซิร์ฟเวอร์   -  person anubhava    schedule 11.05.2012
comment
@anubhava: นี่ยังคงเปลี่ยน URL   -  person symcbean    schedule 12.05.2012
comment
@symcbean: คุณอาจไม่ได้อ่านความคิดเห็นของฉันอย่างละเอียด :) ฉันเพิ่งเขียน Without changing the BASE URI แน่นอนว่า URL จะเปลี่ยนด้วยพารามิเตอร์การสืบค้นจำลองซึ่งสามารถละเว้นในโค้ดได้   -  person anubhava    schedule 12.05.2012
comment
รหัส Symcbean ถูกต้อง เป็น URL ที่โฆษณาในสื่อสิ่งพิมพ์ ฉันไม่สามารถเพิ่มพารามิเตอร์ URL ได้   -  person yunzen    schedule 12.05.2012


คำตอบ (2)


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

person Maksym Polshcha    schedule 11.05.2012
comment
เวลาเฉลี่ยที่พร็อกซีจะรีเฟรชอาจเป็นเท่าใด - person yunzen; 12.05.2012
comment
@yunzen ไม่มีเบาะแส ขึ้นอยู่กับการตั้งค่า - person Maksym Polshcha; 12.05.2012

สามารถทำได้ใน htaccess ด้วย mod_redirect และ mod_header

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

นี่คือรหัส

RewriteCond %{HTTP_HOST} !^mark\.koli\.ch [NC]
## the [E=nocache:1] modifier sets the environment variable "nocache"
RewriteRule ^/(.*)$ http://mark.koli.ch/$1 [R=301,L,E=nocache:1]

## 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

ขอขอบคุณ Mark S. Kolich ใน รายการบล็อก

แน่นอนว่าควรทำ ก่อน การเปลี่ยนเส้นทางจะเกิดขึ้น ดังนั้นหลังจากนี้ การเปลี่ยนเส้นทาง 301 ทุกครั้งจะไม่ถูกแคชและสามารถเปลี่ยนแปลงได้โดยไม่มีอะไรชัดเจน

บางทีอาจเป็นไปได้ที่จะตั้งค่าตัวแปรสภาพแวดล้อมด้วย PHP ผ่าน apache_setenv.

person yunzen    schedule 07.05.2014