Score:0

พยายามเปลี่ยนเส้นทางใน .htaccess เว้นแต่จะเป็นผู้ดูแลระบบ

ธง us

ฉันกำลังพยายามเขียนกฎใน .htaccess ที่เปลี่ยนเส้นทางทั้งหมด /wp-ผู้ดูแลระบบ ถึง /เข้าสู่ระบบ เว้นแต่ผู้ใช้บางราย (ผู้ดูแลเว็บ) กำลังเข้าสู่ระบบ ฉันจะสร้างกฎดังกล่าวได้อย่างไร

ถ้าฉันใช้:

เขียนใหม่ ^wp-admin /login [R=301,NC,L]

จากนั้นมันจะหยุดเพราะมันจะเปลี่ยนเส้นทางไปยัง /เข้าสู่ระบบแม้แต่สำหรับผู้ดูแลระบบ เนื่องจากเมื่อผู้ดูแลระบบเข้าสู่ระบบ พวกเขาควรจะเห็นแผงควบคุมที่ /wp-ผู้ดูแลระบบ

in flag
Apache ควรจะทราบได้อย่างไรว่าใครคือผู้ใช้?
Jed Booth avatar
us flag
มันไม่ได้ ฉันใช้ Apache บนเซิร์ฟเวอร์และคิดว่าถ้าฉันแท็ก Apache มันจะขยายกลุ่มผู้ชม และคนส่วนใหญ่ที่เป็นผู้ดูแลระบบจริงที่ใช้ Apache จะเห็นสิ่งนี้และจะเป็นเรื่องง่ายสำหรับพวกเขา
in flag
หาก Apache ไม่สามารถแยกความแตกต่างระหว่างผู้ใช้ได้ จะรู้ได้อย่างไรว่าเมื่อใดควรเปลี่ยนเส้นทางและเมื่อใดไม่ควรเปลี่ยนเส้นทาง
Score:1
ธง cn

มีสองวิธีในการทำเช่นนี้ใน apache แต่ไม่มีวิธีใดที่ดี

วิธีที่ดีที่สุดคือทำสิ่งนี้ใน wordpress แทน โดยสร้างปลั๊กอิน wordpress ขนาดเล็กเพื่อเปลี่ยน wp-login.php (ตำแหน่งหน้าเข้าสู่ระบบ) ทั้งหมดเป็น /login ที่กำหนดเองโดยใช้ hook ที่เกี่ยวข้อง: https://developer.wordpress.org/reference/hooks/login_url/

วิธีเดียวที่ apache rewrite สามารถรู้ได้ว่ามีคนล็อกอินอยู่หรือไม่คือการถาม wordpress หรืออ่านคุกกี้โดยตรง

ก่อนหน้านี้ คุณจะต้องการให้สคริปต์ที่กำหนดเองทำงานจากโมดูลการเขียนซ้ำโดยใช้โหมด PRG ของ RewriteMap (https://httpd.apache.org/docs/current/rewrite/rewritemap.html#prg) เพื่อเรียกใช้สคริปต์ PHP ที่สอบถามระบบการพิสูจน์ตัวตนของเวิร์ดเพรสเพื่อดูว่ามีการเข้าสู่ระบบหรือไม่ และเขียนใหม่อย่างเหมาะสม

คุณยังสามารถตรวจสอบกับค่าคุกกี้ได้โดยตรงโดยใช้ RewriteCond ตามตัวแปร HTTP_COOKIE (ดู https://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#RewriteCond)

อย่างไรก็ตาม ทั้งสองอย่างนี้เป็นการแฮ็กที่เปราะบางมาก และฉันขอแนะนำให้ทำใน WP แทน

kz flag
"ตรวจสอบกับค่าคุกกี้โดยตรง" - แม้ว่าคุณจะไม่สามารถ _validate_ คุกกี้ได้ เว้นแต่คุณจะใช้ "สคริปต์ที่กำหนดเอง" ตามที่กล่าวไว้ก่อนหน้านี้ และนี่ไม่ได้ช่วยแก้ปัญหา "ไก่กับไข่" ... การเข้าสู่ระบบ "ผู้ดูแลระบบ" ในตอนแรกเป็นอย่างไรหาก URL ที่ใช้ในการเข้าสู่ระบบถูกเปลี่ยนเส้นทาง
cn flag
เนื่องจาก URL ที่ใช้ในการเข้าสู่ระบบการติดตั้ง wordpress คือ /wp-login.php แทนที่จะเป็น /wp-admin แม้ว่าคำถามจะกล่าวถึงการเปลี่ยนเส้นทางไปยัง /login แต่ฉันก็ถือว่ามีส่วนที่ขาดหายไปที่ไหนสักแห่ง
Score:1
ธง jp

คุณมีปัญหาไก่กับไข่ คุณไม่รู้ว่าผู้ใช้เป็นผู้ดูแลระบบหรือไม่จนกว่าจะเข้าสู่ระบบ ดังนั้นคุณจึงไม่มีข้อมูลที่จะทำการเปลี่ยนเส้นทางแบบมีเงื่อนไขก่อนเข้าสู่ระบบ

Jed Booth avatar
us flag
ฉันรักการเปรียบเทียบ ฮ่าฮ่าขอบคุณ.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา