เรามีลูกค้าจำนวนมากที่ใช้ Nginx บน VPS ปัญหาที่พบบ่อยที่สุดที่ลูกค้าเพิ่งถ่ายโอนจาก Apache คือวิธีการเขียนใหม่ภายใต้ Nginx และวิธีแปลง .htaccess ใน Apache เป็น Nginx มีบทความออนไลน์มากมายเกี่ยวกับเรื่องนี้ มีข้อมูลมากมาย รวมถึงการเขียนใหม่บน WordPress, discuz, phpcms, ecshop, shopex ฯลฯ เพียงแค่คัดลอกมัน ปัญหาทั่วไปอีกประการหนึ่งสำหรับมือใหม่ของ Nginx คือพวกเขาไม่รู้วิธีเปลี่ยนกฎการเขียนซ้ำหลังจากที่ได้รับมา ตัวอย่างเช่น การเขียนไดเรกทอรีย่อยใหม่ภายใต้ Nginx ควรเปลี่ยนเป็นอะไร / คือ wordpress, /bbs คือสำหรับ discuz, / คือ discuz, /blog คือสำหรับ wordpress หรือ / คือสำหรับ wordpress และ /blog คือสำหรับ wordpress เป็นต้น จะเปลี่ยนการเขียนใหม่นี้ได้อย่างไร? เราจะยกตัวอย่างบางส่วนในคำถามที่พบบ่อยของเราเพื่อใช้อ้างอิง:
WordPress ได้รับการติดตั้งในไดเร็กทอรีย่อย /blog:
ที่ตั้ง /บล็อก/ {
รูต /home/www/vpsee.com;
ดัชนีindex.phpindex.htmlindex.htm;
ถ้า (!-e $request_filename) {
เขียนใหม่ ^.+/?(/blog/wp-.*) $1 สุดท้าย;
เขียนใหม่ ^.+/?(/blog/.*.php)$ $1 สุดท้าย;
เขียนใหม่ ^(.+)$ /blog/index.php?q=$1 สุดท้าย;
-
-
Discuz! 7.2 ได้รับการติดตั้งในไดเร็กทอรีย่อย /bbs:
ตำแหน่ง /bbs/ {
รูต /home/www/vpsee.com;
ดัชนีindex.phpindex.htmlindex.htm;
เขียนใหม่ ^/bbs/archiver/((fid|tid)-[w-]+.html)$ /bbs/archiver/index.php?$1 สุดท้าย;
เขียนใหม่ ^/bbs/forum-([0-9]+)-([0-9]+).html$ /bbs/forumdisplay.php?fid=$1&page=$2 สุดท้าย;
เขียนใหม่ ^/bbs/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /bbs/viewthread.php?tid=$1&extra=page %3D$3&page=$2 สุดท้าย;
เขียนใหม่ ^/bbs/space-(ชื่อผู้ใช้|uid)-(.+).html$ /bbs/space.php?$1=$2 สุดท้าย;
เขียนใหม่ ^/bbs/tag-(.+).html$ /bbs/tag.php?name=$1 สุดท้าย;
-
Discuz! X1.5 ได้รับการติดตั้งในไดเร็กทอรีย่อย /bbs:
ตำแหน่ง /bbs/ {
รูต /home/www/vpsee.com;
ดัชนีindex.phpindex.htmlindex.htm;
เขียนใหม่ ^([^.]*)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2 สุดท้าย;
เขียนใหม่ ^([^.]*)/article-([0-9]+)-([0-9]+).html$ $1/portal.php?mod=view&aid=$2&page=$3 สุดท้าย;
เขียนใหม่ ^([^.]*)/forum-(w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 สุดท้าย;
เขียนใหม่ ^([^.]*)/thread-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D $4&page=$3 สุดท้าย;
เขียนใหม่ ^([^.]*)/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3 สุดท้าย;
เขียนใหม่ ^([^.]*)/space-(ชื่อผู้ใช้|uid)-(.+).html$ $1/home.php?mod=space&$2=$3 สุดท้าย;
เขียนใหม่ ^([^.]*)/([az]+)-(.+).html$ $1/$2.php?rewrite=$3 สุดท้าย;
ถ้า (!-e $request_filename) {
กลับ 404;
-
-
หากคุณมีปัญหาในการทำความเข้าใจนิพจน์ทั่วไป เช่น ^([^.]*)/([az]+)-(.+).html$ และสนใจในด้านนี้ คุณสามารถอ่านหนังสือบางเล่มได้ โดยเฉพาะหนังสือที่ดีที่สุด ควรเป็น Mastering Regular Expressions โดย O'Reilly (มีในเวอร์ชันภาษาจีนด้วย: "Mastering Regular Expressions")
ที่มาบทความ: www.vpsee.com
【บทความที่เกี่ยวข้อง】
กฎหลอกคงที่ที่ใช้กันทั่วไปของ Nginx รวบรวม Discuz และกฎหลอกคงที่อื่นๆ