อาจเป็นเพราะการเปลี่ยนเส้นทางเซิร์ฟเวอร์ด้วย
โปรดตรวจสอบเอาต์พุต phpinfo และตรวจสอบ$_SERVER['REDIRECT_MAGE_IS_DEVELOPER_MODE']
ตัวแปรด้วย
คำอธิบาย:
ถ้าคุณกำลังทำงานกับโมดูล mod_rewrite Apache และต้องการที่จะตั้งค่าสภาพแวดล้อมบาง vars, คู่มือ Apache กล่าว vars เหล่านี้สามารถเข้าถึงได้ใน CGI $ENV{VAR}
ใช้ ใน PHP คุณอาจต้องการเขียน$_ENV['VAR']
เพื่อรับค่า VAR แต่คุณต้องเข้าถึงถ้าผ่าน$_SERVER
และในวิธีต่างๆ:
- ตัวอย่าง: .htaccess และ example.php
RewriteEngine บน RewriteRule ^? var1 = ([^;] ); var2 = ([^;] ) $ \ - [E = VAR1: $ 1, E = VAR2: $ 2]
- ตัวอย่าง: .htaccess และ index.php
RewriteEngine บน RewriteRule ^ index.php $ - [L] RewriteRule? var1 = ([^;] ); var2 = ([^;] ) $ \ index.php [E = VAR1: $ 1, E = VAR2: $ 2]
หมายเหตุ: หาก RewriteRule ใด ๆ ตรงกันการเปลี่ยนเส้นทางภายในกว่าการรีสตาร์ท (หลังจากกฎที่กำหนดไว้ล่าสุดหรือทันทีหลังจากกฎที่จับคู่กันที่มีแฟล็ก L) ตรวจสอบการตั้งค่ากฎทั้งหมดอีกครั้ง สำหรับการเปลี่ยนเส้นทางภายใน VAR ที่กำหนดไว้ทุกอันจะได้รับคำนำหน้า 'REDIRECT_' เช่น VAR1 จะเป็น REDIRECT_VAR1 และ VAR2 จะเป็น REDIRECT_VAR2
แน่นอนคุณสามารถ (เพิ่มเติม) กำหนด VAR ดั้งเดิมได้:
RewriteEngine บน RewriteRule ^ index.php $ \ - [E = VAR1:% {REDIRECT_VAR1}, E = VAR2:% {REDIRECT_VAR2}, L] RewriteRule? var1 = ([^;] ); var2 = ([^;] ) ; $ \ index.php [E = VAR1: $ 1, E = VAR2: $ 2]
ด้วยวิธีนี้คุณจะมีและ$_SERVER['REDIRECT_VAR*']
$_SERVER['VAR*']
ตัวอย่างที่ให้มาเป็นเพียงคำอธิบายไม่ว่าในกรณีใด ๆ พวกเขาไม่ได้มีวัตถุประสงค์เพื่อให้เหมาะกับความต้องการของคุณ "\" ในตัวอย่าง. htaccess ใช้เพื่อจุดประสงค์ในการแสดงเท่านั้นไม่ควรเกิดขึ้นในไฟล์. htaccess จริง ตัวคั่นอาร์กิวเมนต์ ';' ในลิงก์อาจเป็น '&' แต่อาจทำให้เกิดปัญหากับ HTML / XHTML ดูหน้าต่อไปนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้: