Dokumen kesalahan yang dikonfigurasi dalam file .htaccess tidak berfungsi dengan benar

Di akun cPanel saya, saya memiliki file htaccess yang terlihat seperti ini:

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

Masalahnya adalah: ketika saya membuka tautan seperti: https://www.domainname.tld/test -- -› Saya mengalami kesalahan 404 yang benar (halaman tidak ada) https://www.domainname.tld/test.php atau test.html ---› saya memiliki kesalahan 404 default pada Apache

Ini sangat aneh...

Saya menghubungi dukungan cPanel dan mereka mengatakan kepada saya bahwa ini bukan kesalahan cPanel. Bisakah Anda membantu saya?


person lizzus    schedule 16.12.2020    source sumber
comment
Ini karena arahan RewriteRule lebih diutamakan daripada ErrorDocument . Server Anda membaca RewriteRule ^(.*)\.html$ $1.php [nc] bukannya ErrorDocument 404 /404.html ketika permintaannya adalah untuk file.html .   -  person Amit Verma    schedule 16.12.2020


Jawaban (1)


Masalahnya bukan pada kode di dalam htaccess tetapi pada konfigurasi cPanel! Saya disbale dari WHM PHP-FM untuk domain yang berminat (baca di sini cara menonaktifkan https://support.cpanel.net/hc/en-us/articles/360049690354-How-to-Disable-PHP-FPM) karena staf cPanel menjelaskan kepada saya hal itu kesalahan. (baca di sini https://support.cpanel.net/hc/en-us/articles/360050895654-ErrorDocument-directive-not-being-honored-when-using-PHP-FPM-and-the-namafile-disediakan-has-a-php-extension)

person lizzus    schedule 16.12.2020