The requested URL was not found on this server - error-handling

I have simple html site. how I can fix the problem 'The requested URL was not found on this server' when user gives wrong URL. for example user type mydomain.com/abc.html and this page is not exist on server, so it will cause an error. how to redirect it on error page to avoid this error.

Create a .htaccess file and add this line.
ErrorDocument 404 /foo.html
This will redirect any 404 error to foo.html

Related

Custom 404 error page in cPanel is not working

I've added a custom 404 page in cpanel - Advanced - Error Pages. And a file with the name 404.shtml is in the root of my website now. In the .htaccess I've added: ErrorDocument 404 /404.shtml (ErrorDocument 404 /public_html/404.shtml (direct path) also does not do the trick)
And if I call the file direct by going to https://.example.com/404.shtml it is showing. But when I type a page that is not existing, I still get the default Apache Not Found page.
Any clue what I am missing here?

Apache server status codes

Is there a way, on apache server, to make a specified page, to send code 404 in browser?
I work on an application, where if you tap a url that is not recognised, the application sends code 302, and makes a redirect instead of a page error.html who send code 200 which is normal because is a page who exist.
I need to modify the code for page error.html in 404 from httpd.conf.
Can you help me please?
I've tried with ErrorDocument 404 /error, but the application does not send 404, it sends 302. I need to rewrite this 302 in 404.
create an error page 404.html on the httpd DocumentRoot.
Add ErrorDocument 404 /404.html in httpd.conf.
Restart Apache and access a page that does not exist.

htaccess - The custom 404 error page is not working properly

EDIT: This question has been solved. Please see my answer.
I have the file .htaccess that contains only the following line (I have added a custom 404 error page)
ErrorDocument 404 404.php
This is the code of the page 404.php:
<?php echo("file not found")?>
The problem is that if i type in my browser for example the url http://127.0.0.1/www/website/this_file_does_not_exist the page shows this line:
404.php
In other words, i see only the filename of the custom 404 error page instead of the content of the 404 error page.
I have already searched on stackoverflow for a solution without success.
How can i fix this problem?
From Apache documentation:
The syntax of the ErrorDocument directive is:
ErrorDocument <3-digit-code> <action>
where the action will be treated as:
A local URL to redirect to (if the action begins with a "/").
An external URL to redirect to (if the action is a valid URL).
Text to be displayed (if none of the above). The text must be
wrapped in quotes (") if it consists of more than one word.
In other words, if you're going to use a local URL it has to begin with a "/":
ErrorDocument 404 /404.php

Capturing and logging broken links on a custom 404 page

I am trying to create a customer 404 page in php that captures and can log into a database the page that was requested. I have this in my .htaccess file already:
ErrorDocument 404 http://mywebsite.com/notfound.php
What I am trying to do is append the requested URI to as a query string to the URL. I have tried this:
ErrorDocument 404 http://mywebsite.com/notfound.php?url=%{REQUEST_URI}
but the URL shows the literal text that I put in above. So I figured I would need some sort of flag at the end like [QSA] or something but all attempts result in a server error 500.
My ultimate goal is to capture the attempted broken link and the referring URL (which I can get from $_SERVER['HTTP_REFERER']) on the notfound.php page and log this into my database where I can pull a report of all links, hyperlinked or called via AJAX, that are broken or missing. I am able to do everything except get the requested URI of the actual link that caused the 404 error.
You shouldn't use ErrorDocument 404 with http:// in the target to avoid full redirect, like this:
ErrorDocument 404 /devsite/notfound.php
Then original 404 URI will be available to you as $_SERVER["REQUEST_URI"]

Redirect via htacces to error pages (not found & Internal Server error)

can I vía .htaccess redirect when
Users finds an Internal Server Error
A not found page
Is that posible? if so, can someone help me with the rewrite rules?
edit
trying
ErrorDocument 500 /oohps.php
ErrorDocument 404 /where.php
and adding them at domain.com/oops.php and domain.com/where.php but still not loaded
Why not just use custom error responses via ErrorDocument?
ErrorDocument 500 /errors/internal-server-error.html
ErrorDocument 404 /errors/not-found.html
It is useful I am able to redirect to index page on 404 error(page not found) by modifying "ErrorDocument" in /etc/apache2/conf.d/localized-error-pages file.
Thanks.....