410 gone zurück an google geben

Hallo Hab mir mal das Plugin 404 Fehlerseite angesehen. Das liefert bei einem nicht vorhandenem Artikel im Shop einen 301 Error an Google zurück. public function onPreDispatch(Enlight\_Event\_EventArgs $args) { /\* @var $response Enlight\_Controller\_Request\_RequestHttp \*/ $request = $args-\>getSubject()-\>Request(); /\* @var $response Enlight\_Controller\_Response\_ResponseHttp \*/ $response = Shopware()-\>Front()-\>Response(); if($request-\>getControllerName() == '404') { $request-\>setControllerName('error'); $response-\>setHttpResponseCode(404); } } public function onPostDispatch(Enlight\_Event\_EventArgs $args) { /\* @var $response Enlight\_Controller\_Request\_RequestHttp \*/ $request = Shopware()-\>Front()-\>Request(); /\* @var $response Enlight\_Controller\_Response\_ResponseHttp \*/ $response = Shopware()-\>Front()-\>Response(); if($response-\>getHttpResponseCode() == 404 && $request-\>getControllerName() != 'error') { $response-\>setRedirect($request-\>getBaseUrl() . '/404', 301); } } Nun habe ich mir gedacht, man könne die 301 austauschen und mit 410 dieses auch ausgeben. Leider macht er einen 302 dann daraus. Jemand ne Idee, wie man das abändern kann? es geht darum im GWT die 404 Seiten beim nächsten Aufruf mit 410 aus dem Index zu löschen.

Niemand ne Idee?

Hi, du könntest statt des Redirects im PostDispatch einfach einen 410 Statuscode senden, dann wird aber standardmäßig die Startseite ausgegeben. Da bin ich mir nicht sicher, ob man im Postdispatch nochmal einen Forward hinbekommt. Viele Grüße

ja, so wollte ich das haben. ob nun startseite oder woandershin ist eigentlich egal. hauptsache kommt ein 410er. nur da war ja mein problem, dass ich den nicht hinbekommen habe.

Dann ersetze die setRedirect Zeile einfach durch $response->setHttpResponseCode(410); Das sollte es schon gewesen sein.

Muss das alte hier noch einmal auskramen. wie kann ich diese beiden Sachen irgendwie verbinden? $response-\>setHttpResponseCode(410); $response-\>setRedirect($request-\>getBaseUrl() . '/xy.php') Beides einzeln geht, aber so nacheinander geht es nicht. Will eine Seite aufrufen, und 410 als Response zurück geben.