Wo verwende ich add_rewrite_rule?

Ich muss meiner Website eine RewriteRule hinzufügen. Ich habe es in .htaccess ohne Glück versucht, es wird nicht geparst, also gebe ich alles auf. Ich habe die Dokumentation zu add_rewrite_rule gefunden, habe aber keine Ahnung, wo ich sie verwenden soll. Ich schreibe kein Plugin. Ich muss eine einfache Regel aufstellen.

Ich ging zur Datei functions.php in dem aktuellen Themenordner. Ist das die, die ich benutze? Ich habe Folgendes eingefügt:

add_action( 'init', 'add_news_rule3' ); function add_news_rule3() { add_rewrite_rule( '^/content/([^/]*)/([^/]*)\.htm$', '/content/$matches[1] [NC,R=301,L]', 'top' ); } 

Ich habe es auch versucht, basierend auf einem Post, den ich woanders gesehen habe:

 add_action( 'generate_rewrite_rules', 'add_news_rule' ); function add_news_rule($wp_rewrite) { $new_rules = array('^/content/([^/]*)/([^/]*)\.htm$' => '/content/$matches[1] [NC,R=301,L]'); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } add_filter('rewrite_rules_array','add_news_rule2'); function add_news_rule2($rules) { $new_rules = array('^/content/([^/]*)/([^/]*)\.htm$' => '/content/$matches[1] [NC,R=301,L]'); return $new_rules + $rules; } 

Solutions Collecting From Web of "Wo verwende ich add_rewrite_rule?"

add_rewrite_rule dient zum Konvertieren einer URL-Struktur zum Abfragen von vars und zum Weiterleiten von Anfragen über index.php . Sie können nicht auf andere URLs zeigen und Flags verwenden, wie Sie es in htaccess rewrites tun würden.

für das, was Sie erreichen wollen, ist es am einfachsten, es über htaccess zu tun. Ihre Regel sollte funktionieren, wenn Sie nur den führenden Schrägstrich entfernen:

 RewriteRule ^content/([^/]+)/([^/]+)\.htm$ /content/$1/ [NC,R=301,L] 

Dies müsste gehen, bevor WordPress schreibt, wenn Sie hübsche Permalinks verwenden, sonst wird diese Regel nie erreicht werden.

Wenn möglich, zeigen Sie bitte Ihren .htaccess-Code an, damit wir sehen können, was für ein Problem Sie haben.

Prüfen Sie zunächst, ob Ihr Modul mod_rewite auf Ihrem Webserver aktiviert ist oder nicht. Um herauszufinden, ob es aktiviert ist oder nicht, gibst du einfach eine Datei in deinen Webservernamen phpinfo.php ein

setze diese Code phpinfo.php Datei

 < ?php phpinfo(); ?> 

Sobald diese Datei ausgeführt wird, sehen Sie unter Überschrift apache2handler in der Tabelle Loaded Modules und finden das Modul mod_rewrite ist vorhanden oder nicht. Wenn nicht vorhanden, dann kontaktieren Sie Ihren Hosting-Anbieter und machen Sie es aktivieren.

Wenn es aktiviert ist, dann überprüfe deine .htaccess-Datei noch einmal, vielleicht fehlt dir etwas.