ฉันต้องการทำตามธรรมเนียม เขียนใหม่
สำหรับโดเมนย่อยบน ISPconfig เมื่อฉันเพิ่มโค้ดด้านล่างสำหรับสิ่งนี้ โดเมนย่อยจะถูกเปลี่ยนเส้นทางไปยังโดเมนหลัก
ตัวอย่าง #1:
เซิร์ฟเวอร์ {
...
ถ้า ($http_host = "แผง.example.com") {
เขียนใหม่ ^(?!/(_SubDomains/Panel|stats|\.well-known/acme-challenge))/(.*)$ /_SubDomains/Panel/$2 สุดท้าย;
เขียนใหม่ ^/(.*)/(.*)$ /index.php?cmd=$1&scd=$2? ล่าสุด;
}
...
}
ถ้าฉันทำตามตัวอย่างที่สอง แสดงว่าเซิร์ฟเวอร์ Nginx ไม่ทำงาน
ตัวอย่าง #2:
เซิร์ฟเวอร์ {
...
ถ้า ($http_host = "แผง.example.com") {
เขียนใหม่ ^(?!/(_SubDomains/Panel|stats|\.well-known/acme-challenge))/(.*)$ /_SubDomains/Panel/$2 สุดท้าย;
ตำแหน่ง ~ \.php$ {
เขียนใหม่ ^/(.*)/(.*)$ /index.php?cmd=$1&scd=$2? ล่าสุด;
}
}
...
}
ฉันใช้ในเซิร์ฟเวอร์ Apache เช่นนี้:
<IfModule mod_rewrite.c>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteCond %{REQUEST_URI} !.(css|gif|ico|jpg|js|png|swf|txt)$
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)?$ index.php?cmd=$1&scd=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ index.php?cmd=$1 [L,QSA]
</IfModule>
โดยไม่ต้องเขียนลิงก์ใหม่: https://panel.example.com/index.php?cmd=abc&scd=xyz
ด้วยการเขียนซ้ำ: https://panel.example.com/abc?scd=xyz
ฉันจะใช้บนเซิร์ฟเวอร์ Nginx PHP-FPM เหมือนที่ฉันใช้บนเซิร์ฟเวอร์ Apache ในโดเมนย่อยได้อย่างไร