เอกสารข้อผิดพลาดที่กำหนดค่าในไฟล์ .htaccess ทำงานไม่ถูกต้อง

ในบัญชี cPanel ของฉัน ฉันมีไฟล์ htaccess ซึ่งมีลักษณะดังนี้:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^(.*)\.html$ $1.php [nc]   //for rewrite all .php file with .html extension

RewriteRule ^$ /index.html [R=301,L]   //for rewrite home page to url with index.html
RewriteRule ^/$ /index.html [R=301,L]  //for rewrite home page to url with index.html

ErrorDocument 404 /404.html

ปัญหาคือ: เมื่อฉันเปิดลิงก์เช่น: https://www.domainname.tld/test -- -> ฉันมีข้อผิดพลาด 404 ที่ถูกต้อง (ไม่มีหน้า) https://www.domainname.tld/test.php หรือ test.html ---> ฉันมีข้อผิดพลาด 404 เริ่มต้นของ Apache

เรื่องนี้แปลกมาก...

ฉันติดต่อฝ่ายสนับสนุน cPanel และพวกเขาบอกว่าไม่ใช่ข้อผิดพลาดของ cPanel คุณช่วยฉันได้ไหม


person lizzus    schedule 16.12.2020    source แหล่งที่มา
comment
เนื่องจากคำสั่ง RewriteRule มีความสำคัญมากกว่า ErrorDocument เซิร์ฟเวอร์ของคุณอ่าน RewriteRule ^(.*)\.html$ $1.php [nc] แทนที่จะเป็น ErrorDocument 404 /404.html เมื่อคำขอสำหรับ file.html   -  person Amit Verma    schedule 16.12.2020


คำตอบ (1)


ปัญหาไม่ได้อยู่ที่โค้ดภายใน htaccess แต่เป็นการกำหนดค่าของ cPanel! ฉันยกเลิก WHM PHP-FM สำหรับโดเมนที่สนใจ (อ่านที่นี่วิธีปิดการใช้งาน https://support.cpanel.net/hc/en-us/articles/360049690354-How-to-Disable-PHP-FPM) เนื่องจากเจ้าหน้าที่ของ cPanel อธิบายว่า ข้อผิดพลาด. (อ่านที่นี่ https://support.cpanel.net/hc/en-us/articles/360050895654-ErrorDocument-directive-not-being-honored-when-using-PHP-FPM-and-the-ชื่อไฟล์ที่ให้ไว้-has-a-php-extension)

person lizzus    schedule 16.12.2020