ubuntuusers.de

Apache Status Code 418

Status: Gelöst | Ubuntu-Version: Server 18.04 (Bionic Beaver)
Antworten |

JasMich.de

Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

Moin moin,

um es vorweg zu nehmen, dieser Beitrag ist ernst gemeint.

Ich habe ein Problem mit der Konfiguration meines Apache2 Servers, auf dem ich gemäß RFC 2324 den HTTP-Status 418 ausgeben möchte, kriege stattdessen aber 500 Internal server error.

.htaccess:

Redirect 418 /teapot

Ist der Status-Code 418 überhaupt im Apache verfügbar? Wenn ja, wie kann ich den konfigurieren?

Gruß,

JasMich.de

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

Error log?

JasMich.de

(Themenstarter)
Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

Da taucht nichts auf. Es wird nur

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

ausgegeben.

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

Der Error log vom Apache.

JasMich.de

(Themenstarter)
Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

Wie gesagt, da wird nichts gelistet, wenn ich die besagte URL aufrufe. Es wundert mich etwas, ich melde ein 500 Internal Server Error sollte doch eigentlich im Error Log drin stehen, oder?

JasMich.de

(Themenstarter)
Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

Ich habe es auch mit

.htaccess:

ErrorDocument 418 /assets/teapot.html
Redirect 418 /teapot

probiert. Bringt nichts.

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

Wo ist denn dokumentiert, dass man mit Redirect 418 ... einen Error Code 418 ausloesen kann?

JasMich.de

(Themenstarter)
Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

Ist es nicht so, dass Redirect XXX /path immer den jeweiligen ErrorCode auslöst? Ich kenne das von 410, 301 etc. ...

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

https://httpd.apache.org/docs/2.4/mod/mod_alias.html

Description: Sends an external redirect based on a regular expression match of the current URL
Syntax: RedirectMatch [status] regex URL

und weiter:

The status argument can be used to return other HTTP status codes:

permanent Returns a permanent redirect status (301) indicating that the resource has moved permanently.
temp Returns a temporary redirect status (302). This is the default.
seeother Returns a "See Other" status (303) indicating that the resource has been replaced.
gone Returns a "Gone" status (410) indicating that the resource has been permanently removed. When this status is used the URL argument should be omitted.

Other status codes can be returned by giving the numeric status code as the value of status. If the status is between 300 and 399, the URL argument must be present. If the status is not between 300 and 399, the URL argument must be omitted. The status must be a valid HTTP status code, known to the Apache HTTP Server (see the function send_error_response in http_protocol.c).

JasMich.de

(Themenstarter)
Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

JasMich.de schrieb:

https://serverfault.com/questions/732836/need-apache2-to-return-418-for-all-requests

Ich sehe da gerade, dass Apache anscheinen I'm A Teapot nicht versteht,

Das lese ich aus obigem Link nicht heraus.

obwohl der unter https://ci.apache.org/projects/httpd/trunk/doxygen/group__HTTP__Status.html#gabd8f0470d91fe185cfef646db09ca460 gelistet ist. Was soll das denn?

Das ist nur eine Definition. Ich waer mir da nicht so sicher, dass er auch implementiert ist. Wikipedia sagt, dass der Code nur reserviert ist, aber nicht als Teil von HTTP standardisiert.

Nichtsdestotrotz ist die Syntax falsch, siehe das Zitat oben.

JasMich.de

(Themenstarter)
Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

Wie wäre es denn in Version "richtig"?

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

sebix schrieb:

https://httpd.apache.org/docs/2.4/mod/mod_alias.html

[...] If the status is not between 300 and 399, the URL argument must be omitted. The status must be a valid HTTP status code, known to the Apache HTTP Server (see the function send_error_response in http_protocol.c).

Also keine URL. Und in http_protocol.c ist 418 ohnehin nicht definiert: https://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/http/http_protocol.c?revision=1840572&view=markup#l135

Dokumentation lesen haette also geholfen.

JasMich.de

(Themenstarter)
Avatar von JasMich.de

Anmeldungsdatum:
26. Mai 2016

Beiträge: 212

Wohnort: Hamburg

Wäre es denn mögich, über PHP den gefragten status auszugeben?

sebix Team-Icon

Moderator, Webteam

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

Antworten |