Hallo zusammen,
ich verzweifele gerade an einer wahrscheinlich höchst einfachen Aufgabe. Ich möchte in der .htaccess alle die Seiten, die es in der neuen Website-Version nicht mehr gibt, auf Error 410 setzen. Dazu habe ich eine entsprechende Fehlerseite namens "error-410-seite-entfernt" angelegt. Unter "Einstellungen" wird kein Suffix angehängt, die URL's werden umgeschrieben, Auto-Item ist aktiviert, die restlichen 4 Einstellungen sind nicht angehakt (das funktioniert für alles Andere problemlos).
Erfolg: wenn die Error-Direktive auskommentiert ist, kommt beim Aufruf von "entfernte-seite" die Apache-410-Fehlerseite. Ist die Error-Direktive aktiv, kommt meine 404-Fehlerseite. Allerdings schaffe ich es nicht, meine Fehlerseite "error-410-seite-entfernt" ausgeben zu lassen. Liegt wahrscheinlich daran, dass zu dem Zeitpunkt die URL's noch nicht umgeschrieben sind, aber alle try-and-error-Versuche, z.B. durch anhängen von ".php" oder ".html", sind bisher gescheitert, ebenso der Versuch, die Error-Direktive direkt vor das Redirect Gone zu setzen.
Meine .htaccess (IMHO für das Problem unwichtige Abschnitte habe ich wg. der besseren Übersichtlichkeit entfernt):
PHP-Code:
## Fehlerseite für: 410 – Seite dauerhaft entfernt
ErrorDocument 410 /error-410-seite-entfernt
#############
## hier entfernt ##
#############
##
# URL rewriting
##
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#############
## hier entfernt ##
#############
RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|map|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|zip|gz)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
Redirect Gone /entfernte-seite
#############
## hier entfernt ##
#############
</IfModule>
Lesezeichen