настройка htaccess ошибки php

Содержание
  1. Как включить или выключить отображение ошибок в PHP?
  2. В скрипте PHP
  3. В файле .htaccess
  4. В файле php.ini
  5. В каком порядке обрабатывается параметр ошибок
  6. Статьи:
  7. PHP Error & htaccess. Настройки вывода php ошибок при помощи htaccess
  8. Убираем отображение ошибок php на сайте
  9. Вывод ошибок php в произвольный лог файл
  10. Защищаем папку с логами от доступа
  11. Выставляем уровень вывода ошибок
  12. Выставляем максимальный размер для строки с ошибкой
  13. Отключить логирование повторяющихся ошибок
  14. Настройки для сайта в рабочем режиме
  15. Конфигурация для отладки или разработки
  16. PHP: Включаем вывод ошибок или отключаем его (htaccess, php.ini, code)
  17. Enabling error display in PHP via htaccess only
  18. 5 Answers 5
  19. .htaccess
  20. Что такое .htaccess?
  21. Где находится файл .htaccess?
  22. Как проверить работает ли .htaccess?
  23. Правильный 301 редирект через файл .htaccess
  24. 301 Редирект с одной страницы на другую (или сайт)
  25. 301 Редирект с www-сайта на сайт без www
  26. Обратный редирект с домена без www на домен с www
  27. Редирект всех посетителей со старого сайта на новый
  28. Как добавить .html в конце URL?
  29. Как убрать .html в конце URL?
  30. Как убрать слэш в конце URL?
  31. 301 Редирект с одного раздела на другой
  32. 301 Редирект при переезде со старого домена на новый
  33. Правильное изменение страниц ошибок через .htaccess
  34. Настройки безопасности сайта через файл .htaccess
  35. Защита сайта от скриптовых инъекций

Как включить или выключить отображение ошибок в PHP?


Часто слышал о такой проблеме от других пользователей. Одним из-за хостера нужно скрыть появляющиеся ошибки, другим наоборот — понять, что происходит с их кодом, потому что ни одна ошибка не показывается. В этой статье постараюсь показать все основные способы отобразить / скрыть ошибки.

В скрипте PHP

1) В PHP есть всего лишь один оператор, который поддерживает систему управления ошибками — это знак @. Он позволяет проигнорировать сообщение любое сообщение об ошибке. Его нужно ставить ПЕРЕД выражением, которое может её содержать.

В примере специально допущена ошибка, но она НЕ будет отображена

2) Также можно перед проверяемым скриптом PHP можно вставить настройку параметра отображения ошибок (display_errors). Он может приобретать значение либо On (показывать), либо Off (скрыть).

И соответственно после кода, который проверялся на ошибки, выставить параметр обратно.

Например, Вы хотите увидеть ошибки в скрипте

Можно выставить наоборот (в верхнем off, а в нижнем on), чтобы в конкретном отрезке кода ошибки НЕ отображались.

В файле .htaccess

Чаще всего проблему решают именно указанием настроек в файле .htaccess, который располагается в корневой директории сайта. В строке php_flag display_errors нужно также выставить On или Off

Если Вам нужно работать с конкретным типом ошибок, то привожу основные их виды:

E_ALL — все ошибки
E_ERROR — ошибки функций (критические)
E_WARNING — предупреждения
E_PARSE — ошибки синтаксиса
E_NOTICE — замечания (ненормальный код — кодировка и тп)
E_CORE_ERROR — ошибка обработчика
E_CORE_WARNING — предупреждения обработчика
E_COMPILE_ERROR — ошибка компилятора
E_COMPILE_WARNING — предупреждение компилятора
E_USER_ERROR — ошибка пользователей
E_USER_WARNING — предупреждение пользователей
E_USER_NOTICE — уведомления пользователей

В файле php.ini

Как видите, параметр можно указать в нескольких местах. Однако, если у Вы хотите, чтобы целиком на сайте этот параметр имел определённое значение, то проще выставить его в файле php.ini.(к нему на хостинге не всегда может быть доступ), но в этом случае можно будет даже обойти настройки всего хостинга

В верхней строке выбираем все виды ошибок, в нижней даём добро на их отображение.

После правок необходимо перезапустить Apache, чтобы настройки были изменены и вступили в силу (graceful или restart):

В каком порядке обрабатывается параметр ошибок

В самом начале учитывается параметр php.ini , затем .htaccess , а после то, что указано непосредственно в скрипте PHP. Так что если что-то не сработало, то смотрим по цепочку выше, возможно, там настройка другая.

Как обычно спасибо за внимание и удачи! Надеюсь статья была полезна!

источник

Статьи:

Мы подготовили новое пакетное предложение по разработке сайтов для нотариусов. Если Вы — частный нотариус, то создание сайта у нас позволит вам:

PHP Error & htaccess. Настройки вывода php ошибок при помощи htaccess

Описание настроек управления ошибками PHP, которые можно выполнить в .htaccess. Мы регулярно используем в своей работе те или иные настройки php, а именно в этой статье собрано наиболее полное описание этих возможностей. Автор статьи Jeff Starr.

Убираем отображение ошибок php на сайте

Вывод ошибок php в произвольный лог файл

Защищаем папку с логами от доступа

Выставляем уровень вывода ошибок

integer — флаг, который задает глубину вывода ошибок. 0 — не выводить ничего, 8191- выводить в лог все. Значение 1 — выводит ошибки. Более подробное описение в документации по PHP.

Выставляем максимальный размер для строки с ошибкой

Отключить логирование повторяющихся ошибок

Настройки для сайта в рабочем режиме

# PHP error handling for production servers
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_reporting -1
php_value log_errors_max_len 0

Order allow,deny
Deny from all
Satisfy All

Конфигурация для отладки или разработки

# PHP error handling for development servers
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/PHP_errors.log
# [see footnote 3] # php_value error_reporting 999999999
php_value error_reporting -1
php_value log_errors_max_len 0

Order allow,deny
Deny from all
Satisfy All

источник

PHP: Включаем вывод ошибок или отключаем его (htaccess, php.ini, code)

Небольшая заметка-подсказка для тех кому необходимо включить или отключить вывод ошибок на своем хостинге.
Когда речь идет о процессе разработки скриптов или сайтов необходимо быть в курсе ошибок и предупреждений, которые случаются в процессе их выполнения. К сожалению некоторые хостинг провайдеры блокируют вывод ошибок и предупреждений на столько сильно, что их вывод невозможно включить без обращения в техническую поддержку. Однако такие хостинги встречаются не часто и как правило включить или выключить вывод ошибок можно одним из следующих способов:

Способ 1: Использование файла .htaccess
Для этого откройте файл .htaccess который располагается в корне Вашего сайта (если его нет, то создайте его). И добавьте в него следующие строчки:

Если Вам нужно отключить вывод ошибок — замените слово on на off.

Способ 2: С помощью PHP кода
Вы можете включать или отключать вывод ошибок в определенных файлах с помощью вызова PHP функций.

Все возможные аргументы Вы можете найти в документации на сайта php.net. Иногда так же может быть полезна команда ini_set:

Однако данная команда обычно заблокирована.

источник

Enabling error display in PHP via htaccess only

I am testing a website online.

Right now, the errors are not being displayed (but I know they exist).

I have access to only the .htaccess file.

How do I make all errors to display using my .htaccess file?

I added these lines to my .htaccess file:

And the pages now display:

5 Answers 5

To turn the actual display of errors on.

To set the types of errors you are displaying, you will need to use:

Note if you use -1 for your integer, it will show all errors, and be future proof when they add in new types of errors.

I feel like adding more details to the existing answer:

Give 777 or 755 permission to the log file and then add the code

at the end of .htaccess. This will protect your log file.

These options are suited for a development server. For a production server you should not display any error to the end user. So change the display flags to off.

источник

.htaccess

Что такое .htaccess?

Файл .htaccess (англ. hypertext access) — это дополнительный механизм конфигурации веб-сервера Apache. Он используется для простой и удобной настройки веб-сервера на котором хранится сайт пользователя. Соответственно меняя настройку веб-сервера, мы сможем поменять работу сайта. Как правило, файл .htaccess находится в корневом каталоге, а его действие распространяется на весь сайт и на все подкаталоги. Если же в другом каталоге содержится свой .htaccess, то он будет действовать только на свой каталог и подкаталоги.

Важно! Изменяя файл .htaccess можно серьезно нарушить работу сайта, а также необдуманные действия с ним могут не иметь видимых последствий, но повлечь за собой снижение позиций в поисковых системах либо полную их потерю. Поэтому мы рекомендуем перед любыми изменениями файла сохранять его копию, чтобы иметь возможность вернуть прежние настройки.

Где находится файл .htaccess?

Обычно он располагается в корневом каталоге сайта. Иногда в различных CMS может находится файл htaccess.txt, который никак не воспринимается сервером и ни на что не влияет. Чтобы он начал работать, нужно его переименовать в .htaccess. Если это не получится сделать на вашем компьютере, то зайдите на свой сервер через FTP-клиент, и переименуйте файл прямо сервере.

Редактировать файл на компьютере можно с помощью любого текстового редактора, но, чтобы избежать возможных проблем с кодировкой, мы рекомендуем использовать для этого Notepad++.

Как проверить работает ли .htaccess?

Все просто, напишите в первой строчке этого файла любое слово (например YAROBOT), сохраните файл и замените им находящийся на сервере. Если сайт продолжит работать, то .htaccess в данный момент не работает. Если же появится ошибка 500 Internal Server Error, то это значит, что веб-сервер не смог понять команду (YAROBOT) и выдал ошибку. Этот факт подтвердит, что работа .htaccess на сервере поддерживается и включена в данный момент. Чтобы вернуть сайту работоспособность удалите строчку с YAROBOT.

Далее мы поговорим о всем полезном, что можно сделать с помощью данного файла.

Правильный 301 редирект через файл .htaccess

Важно! Если вы хотите, чтобы ваш редирект работал, нужно перед строками, которые рекомендуются ниже по тексту, обязательно прописать

301 Редирект с одной страницы на другую (или сайт)

Для этого в файл .htaccess вносим следующие строки:

Redirect 301 /старая-страница.html http://сайт.рф/новая-страница.html

RedirectPermanent /старая-страница.html http://сайт.рф/новая-страница.html

301 Редирект с www-сайта на сайт без www

Например перенаправление с http://www.site.com на http://site.com. Это очень полезная вещь, часто используется в SЕО

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Обратный редирект с домена без www на домен с www

Перенаправление с http://site.com на http://www.site.com (не советуем использовать

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Редирект всех посетителей со старого сайта на новый

Как добавить .html в конце URL?

Чтобы при вводе site.com/page или site.com/page/ происходило перенаправление на site.com/page.html пишем в .htaccess следующее:

Как убрать .html в конце URL?

Обратный редирект с site.com/page.html на site.com/page

Как убрать слэш в конце URL?

Например было site.com/page/, стало site.com/page

301 Редирект с одного раздела на другой

Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]

301 Редирект при переезде со старого домена на новый

Следующее правило корректно перенаправит посетителей с каждой конкретной страницы старого сайта на такую же страницу на новом сайте. Например со страницы oldsite.com/page на newsite.com/page

RewriteCond % ^www.oldsite.com$ [NC,OR]
RewriteCond % ^test.oldsite.com$ [NC]
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]

Правильное изменение страниц ошибок через .htaccess

Когда пользователь хочет увидеть сайт (отправляет запрос на сервер хостера), то сервер возвращает ему ответ с кодом. Коды 1-399 свидетельствуют о нормальной работе сервера, а коды 400-599 сообщают об ошибке сервера (коды всех ошибок смотрите в спец. статье).

Например, если сервер с вашим сайтом перегружен, или у него происходит перезагрузка, то пользователь увидит текст ошибки (например, 500 Internal Server Error), подумает, что сайт больше не будет работать и больше никогда на него не вернется. Наиболее распространенным решением является составление собственной страницы вместо стандартной 404-ошибки. Эта ошибка показывается пользователю, если введен адрес несуществующей страницы.

Опытные вебмастеры создают свою страницу вместо стандартной, на которой пишут, что человек перешел по несуществующей ссылке и предлагают поискать нужную информацию на сайте, а не уйти с него. Пример нашей 404-страницы можно увидеть здесь. Чтобы показывать пользователям свою страницу ошибки вместо стандартной, нужно создать отдельную страницу (например http://yoursite.com/404.html) и добавить соответствующий код в файл .htaccess. Вот примеры кода, который нужно добавить:

ErrorDocument 400 http://yoursite.com/400.html
ErrorDocument 404 http://yoursite.com/404.html
ErrorDocument 500 http://yoursite.com/500.html

Если вы хотите подставить другую страницу вместо ошибки 403, то нужно указывать еще текстовое сообщение, которое будет показано, например:

ErrorDocument 403 «Sorry can’t allow you access today, see you later alligator :)»

Настройки безопасности сайта через файл .htaccess

Файл .htaccess дает хорошие возможности для улучшения безопасности сайта. Наиболее популярные мы сейчас перечислим:

Защита сайта от скриптовых инъекций

#Включает отслеживание сим-ссылок
Options +FollowSymLinks
#Запускает url_rewriting
RewriteEngine On
#Блокирует все ссылки, содержащие

источник

Читайте также:  настройка 360 mobile security
Оцените статью
Adblock
detector