404 handling and Opera
-
luelusten last edited by
I am having a problem with Opera and I little upset with it, I have a custom 404 what mimics the servers own 404 so it sends the 404 header to the browser but Opera for some reason then creates its OWN blank page does not even show a 404
Opera returns
<html><head></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"></body></html> My site and all other browsers return <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found <p>The requested URL /about was not found on this server. <hr /> <address>Apache Server at wittles.co.uk Port 80 from "Green Cheese Framework"</address> </body></html> PHP side When 404 Called > header("HTTP/1.0 404 Not Found"); > die($Loaded404); $Loaded404 #This is a software created 404 that looks like a standard server 404, this is #only used when there is no 404 included within a Green Cheese Framework Theme $Loaded404 = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found <p>The requested URL /' . @$_REQUEST[$LoadedCall] . ' was not found on this server. <hr /> <address>' . $_SERVER['SERVER_SOFTWARE'].' Server at ' . $_SERVER['HTTP_HOST'] . ' Port ' . $_SERVER['SERVER_PORT']. ' from "Green Cheese Framework"</address> </body></html>'; I would like to know why Opera feels its OK to confused the living hell out of the end user for a while I thought something was up with fist my code, then my server but then found out it was your browser. And also while editing this post I also found your own website is buggy I can't scroll the textarea PLEASE FIX YOUR WEBSITE .... FFS how can you make a browser when you can't make a website ...... Sorry to anyone finding it hard to read thanks to formatting this is a fault of opera, and if they are using vanilla like its hows in the url and source shame on you opera for not setting it up right I used this tool many times and never had these bugs.
-
shelluser last edited by
Are we talking Opera 29? Because then I sincerely doubt that it is the browser. For example, if I go to a non-existing page on Imgur (basically trying to get "operastuff" from Imgur, which doesn't exist) then you can see that you'll get their own customized 404 error page. So Opera doesn't seem to enforce anything. I can even reproduce this with my own (ASP based) websites.
I hardly use PHP so I can't comment on the routine itself.
-
luelusten last edited by
It is the browser not the website that is for a fact as it works in every other browser but seems when Opera gets the header for 404 its not handling it the same way.
Version information Version: 29.0.1795.47 - Opera is up to date Update stream: Stable System: Windows 8.1 64-bit (WoW64)
I have also provided the code I am using nothing crazy in there for the browser not to handle the 404 or echo anything out
Most websites just provide a htaccess link to the 404 html but this version does not it sends a header for 404 also this was so it would work for other api's and HTTP commands that look for the header not just the html reply.Like I said works fine in everything else included strangely IE.
I will keep looking about see what might be triggering it but this only happens in Opera.
URL in question is
http://wittles.co.uk/dev/?wit=about
also happens on old core of the site, same back bones
http://wittles.co.uk/?wit=555Both these addresses have no files for them but no 404 is show in Opera
-
shelluser last edited by
Yes, well, I'm still not convinced to be honest. Thing is: there are several areas where Opera is a lot stricter than the competition. So I wouldn't be surprised if this issue could be caused by not fully following the full HTTP protocol standards (handling of result codes) which other browsers compensate for more easily.
Do note that I'm not claiming that this is the case here, I simply don't know. Also because I'm not familiar with PHP enough to know how to properly handle error codes. What I do know is that I never had issues with this particular issue on Apache ("server-sided error pages") nor with ASP.NET.
Also; it seems as if you're manually building your page header. That I don't understand because I do know that PHP has build in routines for this: http_response_code(404); for example. Alas, that's at the risk of going off topic here, better not dive to deeply into this.
-
luelusten last edited by
The framework does have its how page handler yes, the file main file its called is index.php this file then checks for other files what are needed and will return the right error for the right sections, this is the only browser I had the problem with so, unless someone shows me there is a error in my ways what I can't see as this is taken from php's website
The header string.
There are two special-case header calls. The first is a header that starts with the string "HTTP/" (case is not significant), which will be used to figure out the HTTP status code to send. For example, if you have configured Apache to use a PHP script to handle requests for missing files (using the ErrorDocument directive), you may want to make sure that your script generates the proper status code.
<?php header("HTTP/1.0 404 Not Found"); ?>
I can't see how I would be going wrong, every other browser renders it right from Apple,google, firefox and MS and all the 3ed party ones and mobile ones.
And yes I understand what you saying and I thought it was my code first I didn't jump the gun and blamed the browser but after trial and error my code does not look to be the fault here.
After all other means of testing I am left to bring it down to the browser and windows something here does not play well, thought its not a really big problem as its only shows a white page rather then the 404 but this to me is strange, is there a way to see what headers and other options are sent to the browser from the site to see what has been passed on?
-
luelusten last edited by
Another strange thing is the console does not return 404(Not Found) it returns 404(OK)
#Failed to load resource: the server responded with a status of 404 (OK)
where chrome gets
GET http://wittles.co.uk/dev/?wit=about 404 (Not Found)
Navigated to http://wittles.co.uk/dev/?wit=aboutSo if 404 OK just something in Opera as I checked this online can't fine anyone getting the return 404 OK
-
luelusten last edited by
What version of Opera you using and do you have a screen shot of the Opera one as still blank screen here, also does Opera have trackers if so I could be blocking one of its trackers what is creating this problem, but that is a good news that someone is seeing the right message coming from the Green Cheese Framework.
I was also going to give vivaldi a look but seems to be offline.
Thanks for the test though useful
-
sgunhouse Moderator Volunteer last edited by
Tested in both Opera Stable (29) and Developer (31), http://wittles.co.uk/dev/?wit=about gives the above message