เราเขียนโค้ดจำนวนมากไปยัง htaccess แต่วิธีที่ดีที่สุดในการดีบักนอกเหนือจากการรีเฟรชหน้าคืออะไร
มีวิธีที่ฉันสามารถเขียนมันลงไฟล์หรือไม่? หรือมีฟังก์ชั่น echo / print บ้าง?
ฉันจะรู้ได้อย่างไรว่า $ 1 $ 2 $ 3 คืออะไร
เราเขียนโค้ดจำนวนมากไปยัง htaccess แต่วิธีที่ดีที่สุดในการดีบักนอกเหนือจากการรีเฟรชหน้าคืออะไร
มีวิธีที่ฉันสามารถเขียนมันลงไฟล์หรือไม่? หรือมีฟังก์ชั่น echo / print บ้าง?
ฉันจะรู้ได้อย่างไรว่า $ 1 $ 2 $ 3 คืออะไร
คำตอบ:
คุณสามารถลองวิธีที่กล่าวถึงในโพสต์บล็อกชื่อ A Couple Ways to Debug mod_rewrite :
โดยพื้นฐานแล้วสิ่งที่คุณทำคือการถ่ายโอนข้อมูลบางส่วนที่ mod_rewrite กำลังใช้งานกลับเข้าไปในส่วนหัวจากนั้นใช้ส่วนขยาย Firebug หรือ LiveHTTP Headers ใน Firefox เพื่อดูส่วนหัวและอ่านข้อมูลการซ่อมแซมของคุณ
ใน. htaccess ให้ใช้เงื่อนไขและกฎ:
RewriteCond %{QUERY_STRING} !vardump
RewriteRule (.*) http://www.example.com/$1?vardump&thereq=%{THE_REQUEST}&reqhost=%{HTTP_HOST} [R=301,L,QSA]
ลองเหล่านี้:
RewriteLog "/myfolder/mylogfile.log"
RewriteLogLevel 3
เหล่านี้เป็นเพียงนิพจน์ปกติที่มีการเพิ่มเติมดังนั้นคุณสามารถใช้Regex Coachสำหรับการทดสอบเบื้องต้นกับ URL หรือเครื่องมือการดีบัก Regex อื่น ๆ
ไชโย! :)
.htaccess
ไฟล์ มันต้องไปhttpd.conf
ซึ่งหมายความว่าจะไม่สามารถทำได้ในบัญชีโฮสติ้งที่ใช้ร่วมกัน :-(
นี่คือแฮ็กน้อยที่น่าสนใจเพื่อ "สะท้อน" ตัวแปรออกจากไฟล์. htaccess
หากคุณตั้งค่า AllowOverride เป็น FileInfo คุณสามารถตั้งค่าและเรียกใช้การตอบสนองข้อผิดพลาดที่กำหนดเองในไฟล์. htaccess ของคุณด้วยตัวแปรที่ต้องการในผลลัพธ์:
ErrorDocument 404 "Request: %{THE_REQUEST} Referrer: %{HTTP_REFERER} Host: %{HTTP_HOST}"
RewriteRule ^ - [L,R=404]
คุณสามารถแสดงข้อมูลที่เป็นประโยชน์ได้มากน้อยเพียงใดขึ้นอยู่กับความสร้างสรรค์ของคุณ
คุณไม่ จำกัด การใช้สถานะ 404 ในเนื้อหา "echoed" ของคุณ คุณสามารถแทนที่สถานะ 200 "ErrorDocument" ซึ่งคู่กับ<If>
คำสั่งอาจทำให้แฮ็กนี้ใช้ประโยชน์อื่น ๆ ที่น่าสนใจในการส่งคืนเนื้อหาโดยตรงจากไฟล์. htaccess