Документ об ошибке, настроенный в файле .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-имя-предоставленное-имя-имя-a-php-расширение)

person lizzus    schedule 16.12.2020