Ошибка .htaccess: невозможно получить пользовательскую страницу ошибки 400,404,500, отображаемую с перенаправлением html и php - PullRequest
0 голосов
/ 25 июня 2018

У меня есть код в моем .htaccess, который должен принять www.mysite.com/page.html или www.mysite.com/page.php и просто показать www.mysite.com/page.Этот код, кажется, мешает моему другому коду, который перенаправляет на созданные мной страницы ошибок.Я проверил его на другом сервере и обнаружил, что мой код работает индивидуально, но не вместе.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).* $1.html

<-- this is what i added below and it doesnt work with the code abouve, 
however it does work when the only code in the htaccess file-->

ErrorDocument 400 /400.shtml
ErrorDocument 404 /404.shtml
ErrorDocument 500 /500.shtml

1 Ответ

0 голосов
/ 26 июня 2018

Попробуйте так:

ErrorDocument 400 /400.shtml
ErrorDocument 404 /404.shtml
ErrorDocument 500 /500.shtml

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
...

Директивы ErrorDocument должны появиться первыми.Также следует отметить, что вам нужен абсолютный путь к вашим сценариям ошибок, например, /home/web/404.shtml или http://example.com/404.shtml.

...