.htaccess Standard Status Code

Alles, was den Apache betrifft, kann hier besprochen werden.

.htaccess Standard Status Code

Postby blincv » 08. November 2013 14:22

In der .htaccess kann man ja verschiedene Redirects angeben.
Z.Bsp.:
RewriteRule ^moved/page.html$ newlocation/page.html [R=301,L]

Hier ist ja nun explizit angegeben, dass die Seite mit einem Status Code 301 (Permanently moved) zurückgeliefert wird.

Aber was ist eigentlich wenn man keinen Status Code explizit angibt, welcher wird dann zurückgeliefert?
Also hier:
RewriteRule ^moved/page.html$ newlocation/page.html

Danke schonmal!
blincv
 
Posts: 4
Joined: 18. March 2011 13:20

Re: .htaccess Standard Status Code

Postby Nobbie » 08. November 2013 17:12

blincv wrote:Aber was ist eigentlich wenn man keinen Status Code explizit angibt, welcher wird dann zurückgeliefert?


Dann passiert das, was in der Dokumentation steht:

http://httpd.apache.org/docs/trunk/rewr ... tml#flag_r

Use of the [R] flag causes a HTTP redirect to be issued to the browser. If a fully-qualified URL is specified (that is, including http://servername/) then a redirect will be issued to that location. Otherwise, the current protocol, servername, and port number will be used to generate the URL sent with the redirect.

Any valid HTTP response status code may be specified, using the syntax [R=305], with a 302 status code being used by default if none is specified. The status code specified need not necessarily be a redirect (3xx) status code. However, if a status code is outside the redirect range (300-399) then the substitution string is dropped entirely, and rewriting is stopped as if the L were used.

In addition to response status codes, you may also specify redirect status using their symbolic names: temp (default), permanent, or seeother.

You will almost always want to use [R] in conjunction with [L] (that is, use [R,L]) because on its own, the [R] flag prepends http://thishost[:thisport] to the URI, but then passes this on to the next rule in the ruleset, which can often result in 'Invalid URI in request' warnings.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: .htaccess Standard Status Code

Postby blincv » 09. November 2013 18:50

Ja, aber das ist doch die Doku explizit für das [R] - flag...
D.h. wenn man nicht [R=305] angibt, sondern einfach nur [R], dann wird 302 als Status Code genommen...

Und wenn nun nichtmal [R] dasteht?
blincv
 
Posts: 4
Joined: 18. March 2011 13:20

Re: .htaccess Standard Status Code

Postby Altrea » 09. November 2013 19:02

Wenn ich mich recht erinnere wird bei rewrites auf externe webressourcen ein rewrite status code 302 implizit gesetzt.
Rewrites auf Dateiebene werden für den Client Browser intransparent durchgeführt (weshalb sollte der Browser auch wissen müssen ob nun Datei x oder Datei y ausgeliefert wird?)
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: .htaccess Standard Status Code

Postby Nobbie » 09. November 2013 23:09

blincv wrote:Und wenn nun nichtmal [R] dasteht?


Dann auch.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: .htaccess Standard Status Code

Postby blincv » 11. November 2013 15:26

Hey Altrea,

danke für den Input, ich hab das jetzt mal einfach getestet. Mir ist eingefallen, dass man ja mit Firebug die HTTP Status Codes sehen kann.
Und du hast Recht damit, dass ohne [R] immer ein Status Code von 200(OK) zurückgegeben wird, außer, wenn es eine externe Webseite ist, dann 302.

Und natürlich wenn explizit [R], also redirect angegeben ist.

RewriteRule ^moved/page.html$ newlocation/page.html <--200 für moved/page.html
RewriteRule ^moved/page.html$ http://www.web.de <--302 für moved/page.html
RewriteRule ^moved/page.html$ newlocation/page.html [R] <--302 für moved/page.html

Der Unterschied ist wohl zwischen rewrite (es bleibt dieselbe Url im Browser sichtbar, nur der Content kommt von einem anderen Ort) und redirect (es wird tatsächlich auf eine neue Url weitergeleitet).


Nobbie wrote:
blincv wrote:Und wenn nun nichtmal [R] dasteht?


Dann auch.


NÖ.
blincv
 
Posts: 4
Joined: 18. March 2011 13:20

Re: .htaccess Standard Status Code

Postby Nobbie » 11. November 2013 19:49

blincv wrote:NÖ.


Doch, bei einem Redirect natürlich.

Sonst natürlich nicht, aber das ist so trivial, dass ich (irrig?) davon ausgegangen bin, dass Dir dieser Unterschied klar ist.

blincv wrote:Der Unterschied ist wohl zwischen rewrite (es bleibt dieselbe Url im Browser sichtbar, nur der Content kommt von einem anderen Ort) und redirect (es wird tatsächlich auf eine neue Url weitergeleitet).


Eben. Entweder "nur" rewrite, oder ein redirect. Egal wie. Und redirect ist 302. Wenn es nicht explizit anders gesetzt wird. Vielleicht sieht man manchmal den Wald vor lauter Bäumen nicht?!

Nur zur Erinnerung: "Redirect" war Deine eigene Vorgabe:

blincv wrote:In der .htaccess kann man ja verschiedene Redirects angeben.


Und Redirect ist Redirect. Und nicht Rewrite. Jetzt klarer? Oder immer noch "NÖ"?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: .htaccess Standard Status Code

Postby blincv » 12. November 2013 08:10

blincv wrote:Aber was ist eigentlich wenn man keinen Status Code explizit angibt, welcher wird dann zurückgeliefert?
Also hier:
RewriteRule ^moved/page.html$ newlocation/page.html

Danke schonmal!


Also ich hab jawohl explizit ein Beispiel für die RewriteRule angegeben. Da sieht man doch wohl, dass es kein redirect ist.
Und dass ich, wenn ich eine Frage zu einem Thema stelle, noch nicht Alles dazu weiß, ist doch wohl auch klar?

Nach deiner Antwort wäre ich nämlich bisher mit falschem Wissen rumgelaufen.
blincv
 
Posts: 4
Joined: 18. March 2011 13:20

Re: .htaccess Standard Status Code

Postby Altrea » 12. November 2013 11:18

Das driftet hier langsam in eine private Diskussion ab.
Da dies keinen Mehrwert für die Community bringt möchte ich bitten, wenn gewünscht, solche Meinungsverschiedenheiten privat über PMs weiterzuführen.
Danke.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64


Return to Apache

Who is online

Users browsing this forum: No registered users and 32 guests