Support » Installation » Probleme mit 404-Error-Seite / Umleitungen von .php URLs (htaccess?)

  • Gelöst anna1334

    (@anna1334)


    Hi,

    Wir sind von einer alten Website (nicht wordpress) auf eine WordPress-Multisite umgestiegen. Die Multisite funktioniert grundsätzlich, allerdings gibt es natürlich zB von Google Links zur alten Seite die unter diesem URL nicht auf der neuen Seite sind. „Redirection“ Plugin konnte diese nicht umleiten, „Rankmath“ auch nicht. Umleitungen von writersstudio.at/alte-seite/ zu neuem URL funktionieren normal, bzw. wird falls keine Umleitung angelegt ist die schöne 404 Seite angezeigt. Umleitungen von writersstudio.at/alteseite.php gehen allerdings nicht. Hier kommen User zu einer kahlen „File not found“ Meldung. Gerade diese Seiten wären für uns aber wichtig auf die neue Seite zu leiten.

    Ich befürchte der Fehler liegt in der .htaccess – aber ich weiß nicht, was genau ich dort ändern müsste?

    Unten dran der Website Zustands-Bericht. Ich hoffe ihr könnt mir weiterhelfen. Vielen Dank! 🙂

    ` wp-core
    
    version: 6.3.1
    site_language: de_DE
    user_language: de_DE
    timezone: Europe/Vienna
    permalink: /%postname%/
    https_status: true
    multisite: true
    user_registration: false
    blog_public: 1
    default_comment_status: open
    environment_type: production
    site_count: 3
    network_count: 1
    user_count: 6
    dotorg_communication: true wp-active-theme name: Hello Elementor (hello-elementor)
    version: 2.8.1
    author: Elementor Team
    author_website: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
    parent_theme: none
    theme_features: core-block-patterns, widgets-block-editor, menus, post-thumbnails, automatic-feed-links, title-tag, html5, custom-logo, editor-style, align-wide, woocommerce, wc-product-gallery-zoom, wc-product-gallery-lightbox, wc-product-gallery-slider
    theme_path: /srv/www/w/writersstudio/writersstudio.at/wp-content/themes/hello-elementor
    auto_update: Deaktiviert wp-themes-inactive (3) Loudness: version: 1.0.5, author: Automattic, Automatische Aktualisierungen deaktiviert
    Royal Elementor Kit: version: 1.0.110, author: WP Royal, Automatische Aktualisierungen deaktiviert
    Twenty Twenty-Three: version: 1.2, author: Das WordPress-Team, Automatische Aktualisierungen deaktiviert wp-plugins-active (7) Complianz | GDPR/CCPA Cookie Consent: version: 6.5.4, author: Really Simple Plugins, Automatische Aktualisierungen deaktiviert
    Elementor: version: 3.16.4, author: Elementor.com (latest version: 3.16.5), Automatische Aktualisierungen deaktiviert
    Elementor Pro: version: 3.16.2, author: Elementor.com, Automatische Aktualisierungen deaktiviert
    Rank Math SEO: version: 1.0.203, author: Rank Math, Automatische Aktualisierungen deaktiviert
    WP Event Manager: version: 3.1.38, author: WP Event Manager, Automatische Aktualisierungen deaktiviert
    WP Fastest Cache: version: 1.2.0, author: Emre Vona, Automatische Aktualisierungen deaktiviert
    XML Sitemap Generator for Google: version: 4.1.13, author: Auctollo, Automatische Aktualisierungen deaktiviert wp-plugins-inactive (7) BackWPup: version: 4.0.0, author: Inpsyde GmbH, Automatische Aktualisierungen deaktiviert
    Hello Dolly: version: 1.7.2, author: Matt Mullenweg, Automatische Aktualisierungen deaktiviert
    Loco Translate: version: 2.6.6, author: Tim Whitlock, Automatische Aktualisierungen deaktiviert
    Media Library Assistant: version: 3.11, author: David Lingren (latest version: 3.12), Automatische Aktualisierungen deaktiviert
    Media Sync: version: 1.3.1, author: Erol Živina, Automatische Aktualisierungen deaktiviert
    OMGF: version: 5.7.4, author: Daan from Daan.dev, Automatische Aktualisierungen deaktiviert
    Redirection: version: 5.3.10, author: John Godley, Automatische Aktualisierungen deaktiviert wp-media image_editor: WP_Image_Editor_Imagick
    imagick_module_version: 1691
    imagemagick_version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
    imagick_version: 3.7.0
    file_uploads: File uploads is turned off
    post_max_size: 8M
    upload_max_filesize: 2M
    max_effective_size: 2 MB
    max_file_uploads: 20
    imagick_limits:
    imagick::RESOURCETYPE_AREA: 64 GB
    imagick::RESOURCETYPE_DISK: 9.2233720368548E+18
    imagick::RESOURCETYPE_FILE: 768
    imagick::RESOURCETYPE_MAP: 64 GB
    imagick::RESOURCETYPE_MEMORY: 32 GB
    imagick::RESOURCETYPE_THREAD: 1
    imagick::RESOURCETYPE_TIME: 9.2233720368548E+18
    imagemagick_file_formats: 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DNG, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMV, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV
    gd_version: 2.3.3
    gd_formats: GIF, JPEG, PNG, WebP, BMP, AVIF, XPM
    ghostscript_version: unknown wp-server server_architecture: Linux 5.10.0 x86_64
    httpd_software: Apache
    php_version: 8.2.8 64bit
    php_sapi: fpm-fcgi
    max_input_variables: 1000
    time_limit: 30
    memory_limit: 384M
    max_input_time: 60
    upload_max_filesize: 2M
    php_post_max_size: 8M
    curl_version: 7.74.0 OpenSSL/1.1.1n
    suhosin: false
    imagick_availability: true
    pretty_permalinks: true
    htaccess_extra_rules: true
    current: 2023-10-10T09:45:40+00:00
    utc-time: Tuesday, 10-Oct-23 09:45:40 UTC
    server-time: 2023-10-10T11:45:39+02:00 wp-database extension: mysqli
    server_version: 8.0.33-25
    client_version: mysqlnd 8.2.8
    max_allowed_packet: 268435456
    max_connections: 151 wp-constants WP_HOME: undefined
    WP_SITEURL: undefined
    WP_CONTENT_DIR: /srv/www/w/writersstudio/writersstudio.at/wp-content
    WP_PLUGIN_DIR: /srv/www/w/writersstudio/writersstudio.at/wp-content/plugins
    WP_MEMORY_LIMIT: 200M
    WP_MAX_MEMORY_LIMIT: 384M
    WP_DEBUG: false
    WP_DEBUG_DISPLAY: true
    WP_DEBUG_LOG: false
    SCRIPT_DEBUG: false
    WP_CACHE: false
    CONCATENATE_SCRIPTS: undefined
    COMPRESS_SCRIPTS: undefined
    COMPRESS_CSS: undefined
    WP_ENVIRONMENT_TYPE: Nicht definiert
    WP_DEVELOPMENT_MODE: undefined
    DB_CHARSET: utf8mb4
    DB_COLLATE: undefined wp-filesystem wordpress: writable
    wp-content: writable
    uploads: writable
    plugins: writable
    themes: writable

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)
  • Die Weiterleitungsregel in der .htaccess bedeutet umgangssprachlich ausgedrückt „schau nach, ob es die Datei/das Verzeichnis in der URL gibt und leite die Frage sonst an die index.php von WordPress weiter“. Bei https://example.com/alte-seite/ wird also (wenn es kein Verzeichnis alte-seite gibt) die index.php aufgerufen und der Verzeichnisname als Titel zur Suche nach einem passenden Beitrag oder Seite in der Datenbank genutzt.

    Möchtest du nun, dass bei Aufruf von alte-seite.php auf eine andere Webseite weitergeleitet wird, kannst du die Datei erstellen und in das Web-Stammverzeichnis hochladen. Der Inhalt der PHP-Datei könnte dann sinngemäß so aussehen:

    <?php
    // 301 Moved Permanently
    header("Location: http://www.example.com/neue-website/", true, 301);
    exit();

    (Quelle: How to Make a Redirect in PHP)

    Mit dem im Header mitgelieferten HTTP-Code 301 bekommen Suchmaschinen gleich mitgeteilt, dass die Adresse veraltet ist und sie stattdessen die neue Webseite indexieren sollen.

    Möchtest du bei Aufruf des Verzeichnisses alte-seite weiterleiten, kannst du analog zum Beispiel oben ein Verzeichnis alte-seite einrichten und dort eine index.php mit einer Weiterleitungsregel wie oben ablegen.

    Alternativ kannst du auch in der .htaccess Weiterleitungsregeln anlegen. Die müssen dann aber oberhalb des von WordPress angelegten Code-Block mit Weiterleitungsregeln stehen, weil sie sonst nicht berücksichtigt werden.

    Thread-Starter anna1334

    (@anna1334)

    Hi,

    danke für die Antwort!
    Wenn alte-seite.php so wie andere inexistente Seiten behandelt werden würde und die User auf index.php landen (bzw. auf der eigenen Error-404 Seite) wäre das ja schonmal etwas. Genau das funktioniert aber eben nicht – es kommt die kahle Fehlermeldung „File not found.“ wie im Screenshot.

    Am liebsten wäre mir dies über einen Plugin im Backend zu lösen (zB Rankmath, bin aber offen für Empfehlungen) – also dort Weiterleitungen anzugeben und zu verwalten. Das klappt aber mit keinem URL der auf .php endet.
    Siehe zB. http://www.writersstudio.at/alte-seite.php vs. http://www.writersstudio.at/alte-seite (beide existieren nicht, aber der Fehler sieht ganz anders aus).

    Als Notlösung kann ich natürlich einzelne PHP-Weiterleitungs-Seiten machen und hochladen – aber gibt es da keine elegantere / einfachere Lösung?

    … Genau das funktioniert aber eben nicht – es kommt die kahle Fehlermeldung „File not found.“ wie im Screenshot.

    Dass die nicht gefundene Datei eine andere Darstellung des Fehlers 404–File not found erzeugt, kann mit deinen individuellen Einstellungen in der .htaccess zusammenhängen. Ich kann das ohne Einblick nicht beurteilen.

    Am liebsten wäre mir dies über einen Plugin im Backend zu lösen

    Wenn die Fehlermeldung bereits ausgegeben wird, bevor WordPress überhaupt in Erscheinung tritt, nützt dir auch ein Plugin nichts.

    Als Notlösung kann ich natürlich einzelne PHP-Weiterleitungs-Seiten machen und hochladen

    Wieso Notlösung?

    gibt es da keine elegantere / einfachere Lösung?

    Ich habe dir beschrieben, wie ich es machen würde. Vielleicht findest du noch eine „elegantere“ Lösung. Viel Erfolg.

    Thread-Starter anna1334

    (@anna1334)

    Ich meinte Notlösung, weil es umständlich erscheint ~50 php-Dateien als einzelne Weiterleitungen zu machen. Wäre einfach schöner, wenn die Fehlermeldung es bis ins wordpress schaffen. 😉

    Hier die .htaccess – siehst du etwas das geändert werden sollte?

    # BEGIN GzipWpFastestCache
    <IfModule mod_deflate.c>
    AddType x-font/woff .woff
    AddType x-font/ttf .ttf
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-font-ttf
    AddOutputFilterByType DEFLATE x-font/ttf
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
    AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf
    </IfModule>
    # END GzipWpFastestCache
    # BEGIN LBCWpFastestCache
    <FilesMatch "\.(webm|ogg|mp4|ico|pdf|flv|avif|jpg|jpeg|png|gif|webp|js|css|swf|x-html|css|xml|js|woff|woff2|otf|ttf|svg|eot)(\.gz)?$">
    <IfModule mod_expires.c>
    AddType application/font-woff2 .woff2
    AddType application/x-font-opentype .otf
    ExpiresActive On
    ExpiresDefault A0
    ExpiresByType video/webm A10368000
    ExpiresByType video/ogg A10368000
    ExpiresByType video/mp4 A10368000
    ExpiresByType image/avif A10368000
    ExpiresByType image/webp A10368000
    ExpiresByType image/gif A10368000
    ExpiresByType image/png A10368000
    ExpiresByType image/jpg A10368000
    ExpiresByType image/jpeg A10368000
    ExpiresByType image/ico A10368000
    ExpiresByType image/svg+xml A10368000
    ExpiresByType text/css A10368000
    ExpiresByType text/javascript A10368000
    ExpiresByType application/javascript A10368000
    ExpiresByType application/x-javascript A10368000
    ExpiresByType application/font-woff2 A10368000
    ExpiresByType application/x-font-opentype A10368000
    ExpiresByType application/x-font-truetype A10368000
    </IfModule>
    <IfModule mod_headers.c>
    Header set Expires "max-age=A10368000, public"
    Header unset ETag
    Header set Connection keep-alive
    FileETag None
    </IfModule>
    </FilesMatch>
    # END LBCWpFastestCache
    # BEGIN WordPress Multisite
    # Using subfolder network type: https://wordpress.org/support/article/htaccess/#multisite
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    # END WordPress Multisite

    Ich hab das jetzt nochmal mit einer Multisite getestet: bei nicht vorhandenen Dateien wird eine einfache Fehlermeldung ohne Gestaltung des Themes ausgegeben.

    In dem Fall würde ich das wie bereits beschrieben mit Weiterleitungsregeln in der .htaccess regeln.
    Das Plugin Redirection habe ich kurz als Alternative getestet. Wie erwartet, greift das Plugin aber nicht, weil die Fehlermeldung vorher ausgegeben wird.

    Thread-Starter anna1334

    (@anna1334)

    Ah, jetzt gehts. Vielen Dank! 🙂

    Falls jemand anderes hier landet mit einem ähnlichen Problem:

    • WordPress Multisite kann falsche .php URLs offenbar einfach nicht (via Backend / Plugin / …) umleiten, dh es ist nicht eine falsche Einstellung bei mir <- das hab ich nicht gleich kapiert 😉
    • Lösung:
      in der .htaccess oben drauf eine Liste einfügen mit allen Umleitungen, circa:
      Redirect 301 /alt-link1.php https://meinurl.com/neu-link-eins
      Redirect 301 /alt-link2.php https://meinurl.com/neu-link-zwei

    Danke für die Rückmeldung. So hatte ich das gemeint.

    Weiterhin viel Erfolg mit WordPress.

Ansicht von 7 Antworten - 1 bis 7 (von insgesamt 7)
  • Das Thema „Probleme mit 404-Error-Seite / Umleitungen von .php URLs (htaccess?)“ ist für neue Antworten geschlossen.