it-swarm.com.de

Schreiben Sie die Vorschau-URL neu, um index.php einzuschließen

Unsere WordPress-Website hat eine statische HTML-Homepage. Eine Anforderung für die Domain gibt die Seite index.html zurück.

Dies hat unseren Zwecken gut gedient, hat jedoch ein Problem verursacht, wenn versucht wurde, eine Vorschau eines Posts oder einer Seite während der Bearbeitung anzuzeigen. Da die Vorschau-URLs keinen index.php enthalten, wird bei allen Vorschau-Anforderungen die statische Homepage angezeigt. z.B.,

http://www.example.com/?page_id=7848&preview=true

OR

http://www.example.com/?post_type=solution&p=6480&preview_id=6480&preview_nonce=730eb2844c&preview=true

Beide zeigen die Homepage an. Das manuelle Einfügen von index.php zwischen www.example.com/ und ?<querystring> funktioniert und zeigt die Seitenvorschau an.

Ich habe Folgendes in functions.php versucht, wodurch die .htaccess-Datei aktualisiert wird, aber die Startseite wird weiterhin angezeigt.

function custom_rewrite_preview( )
{
  add_rewrite_rule(
    '(.*)\?(.+)&preview=true$',
    '$1index.php?$2&preview=false',
    'bottom'
  );
}
add_action( 'init', 'custom_rewrite_preview' );

Ich bin nicht sicher, ob die Funktion und/oder die Regex falsch sind oder ob das Umschreiben zu einem anderen Zeitpunkt erfolgen muss.

1
L Ebert

Ändern Sie Ihre Änderungen nicht. Fügen Sie den Inhalt der HTML-Datei in eine front-page.php-Vorlagendatei in Ihrem Design ein.

1

Sie können die folgende Umschreiberegel in Ihren .htaccess einfügen:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^taxo=([^&]+)&([^=]+)=([^&]+)&([^=]+)=([^&]+)&([^=]+)=(.*)$
RewriteRule ^/?$ /%1/%2/%3/%4/%5/%6/%7? [L,R=301]
</IfModule>

Leeren Sie den Cache Ihres Browsers und alle Domänen, die dieser Struktur entsprechen:

http://www.example.com/?page_id=7848&preview=true

Weiterleiten an:

http://www.example.com/index.php?page_id=7848&preview=true

Dies wurde von mir mit dem htaccess-Tester überprüft und getestet.