ошибка 403 — как исправить, что за ошибка forbidden. Сегодня разбираемся с ошибкой 403 и да не забыть о «ErrorDocument 403«.
Что такое ошибка 403.
С самого начала — просто давайте посмотрим на такую ошибку — которую ранее мы создавали для других страниц, а уже потом прейдем к теории.
Собственная страница для вывода ошибки 403:
Вместо стандартной ошибки типа «forbidden» — у нас выводится собственная страница 403.
Вывод ошибки forbidden 403:
Такая же ошибка(самодельная) 403, которая выдает «Forbidden You don’t have permission to access /htaccess/folders/cfg.cfg on this server» — , что означает «Запрещено У вас нет разрешения на доступ к /htaccess/folders/cfg.cfg на этом сервере»
С примерами разобрались! Увидели, вживую созданные ошибки 403.
Но что же такое ошибка 403 forbidden
Если вы увидели «ошибка 403 forbidden» — значит, что данный файл, папка, закрыты для просмотра, т.е. запрещены.
Как исправить ошибку 403.
Данная ошибка возможно по нескольким причинам.
Где-то написано правило, которое запрещает вам увидеть информацию.
Ищем файл htaccess открываем его и ищем, где есть, например :
Файл htaccess может находиться в любом каталоге начиная с того, где лежит ваша папка/файл — подымаемся по каталогам вплоть до корневой и проверяем все файлы «htaccess».
Чтобы не встречаться с ошибкой 403.
Для того, чтобы никогда не встречаться с ошибкой 403 на своем сайте — изучайте теорию и воплощайте её на своем сайте!
ErrorDocument 403 htaccess — своя страница 403.html
Если вместо ответа сервера «forbidden» :
Вы хотите вывести свою ошибку 403, то вам нужно в файле htaccess прописать свойство :
ErrorDocument 403 /403.html
Смотрим на наш файл htaccess — строка №4.
Именно в данном случае!
Файл htaccess располагается в корневой папке.
Для данного правила, которое показано выше будет выводиться страница 403, которая располагается:
Как собрать собственную страницу 403.html?
Для того, чтобы сделать у себя на сайте собственную страницу 403.html можно пойти несколькими путями:
Можно просто скачать ошибку, нажав по кнопке скачать:
Скачать страницу с ошибкой 403.html
Либо же вы можете самостоятельно собрать данную ошибку. Скопируйте код и сохраните его на компьютере.
Потом вам понадобится программа, которая умеет соединяться с сервером filezilla.
Либо через файл менеджер, который должен быть в админке сайта.
Далее нужны данные ftp… соединяемся и передаем на сервер.
Код страницы 403.html
<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<title>403</title>
</head>
<body>
<META HTTP-EQUIV=»REFRESH» CONTENT=»3; URL=https://dwweb.ru/»>
<TITLE>403</TITLE>
</HEAD><BODY>
<H1>Доступ запрещен</H1>
Чё вы здесь делаете!?
<HR>
</body>
</html>
Вопрос на засыпку об ошибке 403?
Если вы изучили выше приведенные примеры, то поняли, что у нас есть два варианта ошибки 403:
На главном сайте https://dwweb.ru/
И на поддомене «http://example.dwweb.ru»:
И выдают, по большому счету, они одно и тоже.
НО!
Если мы удалим из ссылки в этих двух случаях название файла и разрешение — т.е. попутаемся открыть папку, где лежат файлы, то получим совершенно разные результата!
Вопрос почему!?
Правила htaccess для данной папки идентичные в двух папках.
На главном сайте https://dwweb.ru/ — получим 404.
И на поддомене «http://example.dwweb.ru» — откроется папка, где лежит файл:
John Mwaniki / 23 Aug 2021
There will be some scenarios where web visitors will be served with error messages when trying to access certain pages or files on your website.
Such scenarios include:
403 Forbidden
This response means the web visitor does not have the necessary permission to access the page they are trying to access, so the server is rejecting to give a proper response.
404 Page Not Found
This response is the most famous due to the frequency of its occurrence. It means that the requested page or resource could not be found on the server. This could be due to visitors trying to access a web page that doesn’t exist, using of incorrect page URL, or the change of page name.
500 Internal Server Error
This occurs when the server has encountered an error it doesn’t know how to handle while trying to serve the user the requested page.
503 Service Unavailable
The server cannot handle the request (because it is overloaded or down for maintenance). Generally, this is a temporary state.
There are many other error responses that visitors may see but the above are the most common and all that you will need to create.
As you can see from all the above screenshots, the default pages are not attractive at all. They also do not give your web visitors any option but to leave your website.
I bet you don’t want to send your visitors away when they try accessing a page on your site and it isn’t available at the moment.
Examples of Great Error Pages
Below are examples of well-designed error pages, from which you can gain some inspiration while designing yours:
403 Forbidden
404 Page Not Found
Example 1: Joe Bidens’ website
Example 2: Donald Trump’s Website
Example 3: Virgin Group Website
Example 4: Whitehouse.gov Website
Example 5: BBC News Website
Example 6: CNN News Website
Example 7: Apple Website
Example 8: Microsoft Website
500 Internal Server Error
503 Service Unavailable
How to create your website custom error pages
It is a great idea to create your own well-designed error pages that are more user-friendly, conveys your brand identity, and gives your visitors more options just like in the above examples.
A good error page should be able to explain to the visitors what happened and give them the ability to navigate to other pages.
You design error pages just like any other page on your website and place the pages anywhere you would like, then instruct the server to load the respective page when a user gets an HTTP error.
To instruct the server you will just need to write some commands in the .htaccess file using the format below.
ErrorDocument errorCode /pagename
Example:
If your error pages are namely: error403.html, 404.php, error_500.html, 503error.html. You can name the error pages however you want.
You write these commands in .htaccess file:
ErrorDocument 403 /error403.html
ErrorDocument 404 /404.php
ErrorDocument 500 /error_500.html
ErrorDocument 503 /503error.html
Include the file paths if the error pages are not in the root directory(ie. public_html).
Eg. if your error page namely 404.html is located in public_html/error/404.html, use:
ErrorDocument 404 /error/404.html
Conclusion
Website visitors will occasionally be served with error responses when they try to access various resources on your website such as web pages or files. The default error pages are unfriendly and usually sends away visitors from your website.
It’s a good idea to have your own custom error pages.
In this article, you have learned how you can make your own error pages for your website.
I know you can send a header that tells the browser this page is forbidden like:
header('HTTP/1.0 403 Forbidden');
But how can I also display the custom error page that has been created on the server for this type of error?
By default, just sending the header displays a white page, but I remember a while back reading that you can use the customer error page. Does anybody know?
alex
477k200 gold badges877 silver badges980 bronze badges
asked Feb 21, 2011 at 2:16
0
Just echo your content after sending the header.
header('HTTP/1.0 403 Forbidden');
echo 'You are forbidden!';
answered Feb 21, 2011 at 2:21
alexalex
477k200 gold badges877 silver badges980 bronze badges
3
http_response_code was introduced in PHP 5.4 and made the things a lot easier!
http_response_code(403);
die('Forbidden');
answered Apr 25, 2017 at 14:44
Marcio MazzucatoMarcio Mazzucato
8,7518 gold badges64 silver badges78 bronze badges
Include the custom error page after changing the header.
showdev
28.2k37 gold badges53 silver badges72 bronze badges
answered Feb 21, 2011 at 2:30
3
For this you must first say for the browser that the user receive an error 403. For this you can use this code:
header("HTTP/1.1 403 Forbidden" );
Then, the script send «error, error, error, error, error…….», so you must stop it. You can use
exit;
With this two lines the server send an error and stop the script.
Don’t forget : that emulate the error, but you must set it in a .htaccess file, with
ErrorDocument 403 /error403.php
answered Apr 18, 2013 at 17:26
PyrrhaPyrrha
2112 silver badges2 bronze badges
0
Seen a lot of the answers, but the correct one is to provide the full options for the header function call as per the php manual
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
If you invoke with
header('HTTP/1.0 403 Forbidden', true, 403);
the normal behavior of HTTP 403 as configured with Apache or any other server would follow.
answered Dec 11, 2016 at 4:24
I have read all the answers here and none of them was complete answer for my situation (which is exactly the same in this question) so here is how I gathered some parts of the suggested answers and come up with the exact solution:
- Land on your server’s real 403 page. (Go to a forbidden URL on your server, or go to any 403 page you like)
- Right-click and select ‘view source’. Select all the source and save it to file on your domain like: http://domain.com/403.html
- now go to your real forbidden page (or a forbidden situation in some part of your php) example: http://domain.com/members/this_is_forbidden.php
-
echo this code below before any HTML output or header! (even a whitespace will cause PHP to send HTML/TEXT HTTP Header and it won’t work)
The code below should be your first line!<?php header('HTTP/1.0 403 Forbidden'); $contents = file_get_contents('/home/your_account/public_html/domain.com/403.html', TRUE); exit($contents);
Now you have the exact solution. I checked and verified with CPANEL Latest Visitors and it is registered as exact 403 event.
answered Oct 6, 2015 at 18:00
TarikTarik
4,23037 silver badges35 bronze badges
4
.htaccess
ErrorDocument 403 /403.html
answered Feb 21, 2011 at 2:31
6
To minimize the duty of the server make it simple:
.htaccess
ErrorDocument 403 "Forbidden"
PHP
header('HTTP/1.0 403 Forbidden');
die(); // or your message: die('Forbidden');
answered Feb 5, 2014 at 21:34
Use ModRewrite:
RewriteRule ^403.html$ - [F]
Just make sure you create a blank document called «403.html» in your www root or you’ll get a 404 error instead of 403.
answered Feb 1, 2015 at 22:46
Jay SudoJay Sudo
991 silver badge2 bronze badges
2
I understand you have a scenario with ErrorDocument already defined within your apache conf or .htaccess and want to make those pages appear when manually sending a 4xx status code via php.
Unfortunately this is not possible with common methods because php sends header directly to user’s browser (not to Apache web server) whereas ErrorDocument is a display handler for http status generated from Apache.
answered Nov 27, 2014 at 15:22
Refresh the page after sending the 403:
<?php
header('HTTP/1.0 403 Forbidden');
?>
<html><head>
<meta http-equiv="refresh" content="0;URL=http://my.error.page">
</head><body></body></html>
answered Oct 12, 2014 at 6:08
1
5
19
Все уже наверно сталкивались с ситуацией, когда при посещении какого-либо сайта выскакивает надпись
Forbidden You don’t have permission to access on this server и нужный сайт не загружается.
Данная ситуация возможна в том случае, если Вы пытаетесь обратиться к ресурсам сайта, доступ к которым запрещен,
либо Ваш IP адрес был забанен на данном сайте. В данном случае код ответа сервера будет равен 403. Проще говоря, сервер возвращает
ошибку 403 (или страничку 403).
В данной теме мы предлагаем Вам создать свою собственную страничку 403 для отслеживания активности заблокированных
IP адресов и IP адресов, пытающихся обратиться к ресурсам, доступ к которым закрыт.
Своя собственная страничка 403 может быть полезна для тех, кто хочет знать, прекратились ли обращения к
страницам сайта с забаненных IP адресов или нет, и кто пытается получить доступ к файлам с ограниченным доступом.
Для начала, давайте посмотрим, как выглядит исходный код странички, которая появляется при попытке доступа к
файлу .htaacces:
HTML код:
<!DOCTYPE html>
<html lang="en"><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /.htaacces
on this server.</p>
</body></html>
Для создания своей собственной странички 403, создайте файл (например, error403.php). Внутрь данного файла поместите выше
приведенный HTML код с сообщением, после которого добавьте PHP код, который будет писать логи:
PHP код:
<?php
if (filesize("logs_403.txt")<99999) {
$fh=fopen("logs_403.txt","a+");
flock($fh,LOCK_EX);
fseek($fh,0);
while (!feof($fh)) $str.=fread($fh,8192);
$str.=date("H:i:s d m Y")." | ".htmlspecialchars($_SERVER['REMOTE_ADDR']." | ".
$_SERVER['HTTP_USER_AGENT']." | ".$_SERVER['REQUEST_URI']."rn");
ftruncate($fh,0);
fwrite($fh,$str);
flock($fh,LOCK_UN);
fclose($fh);
}
?>
Для того чтобы страничка 403 стала универсальной и выдавала в сообщение URL, к которому закрыт доступ,
в HTML коде замените строчку <p>You don’t have permission to access /.htaacces на
<p>You don’t have permission to access /<?php echo strtok(basename($_SERVER[‘REQUEST_URI’]), ‘?’).’ ‘;?>
Теперь Вам остается лишь перенаправить посетителя со стандартной странички 403 на Вашу собственную.
Для этого в файле .htaccess добавьте всего одну строчку:
Цитата:
ErrorDocument 403 /error403.php
Все. Теперь все IP адреса, доступ которым запрещен на сайт и IP адреса, которые пытаются получить доступ к защищенным
ресурсам сайта, будут попадать в файл логов logs_403.txt с указанием времени, User_Agent-а и URL, по которому они пытались получить доступ.
Обращаем Ваше внимание на то, что мы специально добавили в PHP код дополнительное условие проверки
if (filesize(«logs_403.txt»)<99999) для того, чтобы при быстром росте размера файла логов и превышении им
размера в 99999 байт, логи в файл перестали записываться для снижения нагрузки на сервер.
При всем при этом стоит учитывать, что предлагаемая нами собственная страничка 403 при очень частом
обращении к ней повысит нагрузку на сервер, так что смотрите сами, стоит ли Вам создавать свою собственную страничку ошибки
403 если сервер у Вас слабый.
Дата создания: 16:12:47 13.06.2013 г.
Посещений: 7903 раз(а).
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Question : Can I create a custom error page for 403 forbidden error message.
Answer : Yes If you are using unlimited hosting plan, you can create a customised 403 error page. Follow the below steps to create 403 page in Nginx.
To create your custom 403 error page, here’s what you will need to do:
1. Create your own custom 403 error page, for example call it 403.html on your default web document root.
# cd /var/www/html/ # vim 403.html <html> <head><title>Error 403 - You are not authorized to access this page.</title></head> <body> You are not authorized to access this page. If you this an error, please contact webmaster with your IP at [email protected] </body> </html>
2. Edit your nginx.conf file like below:
# vim nginx.conf # redirect server error pages to the static page error_page 403 /403.html; location = /403.html { root /var/www/html; }
3. Save and closer file.
4. Restart and reload the Nginx service.
# service nginx reload/restart
5. Visit your website to a unauthorised page to confirm if the error page is working correctly.
Thanks:)
Thank you! for visiting LookLinux.
If you find this tutorial helpful please share with your friends to keep it alive.
For more helpful topic browse my website www.looklinux.com.
To become an author at LookLinux Submit Article.
Stay connected to Facebook.
You may also like
About the author
Hi! I’m Santosh and I’m here to post some cool article for you. If you have any query and suggestion please comment in comment section.