Ich habe ein ernstes Problem mit einer meiner WP-Sites. Plaese werfen Sie einen Blick auf meine Rewrite-Regeln:WP: wie add_rewrite_rule() ohne Erstellen einer zusätzlichen Seiten
function set_rewrite_rules(){
add_rewrite_tag('%posttype%', '([^&]+)');
add_rewrite_rule('^expertise[/]([^/]+)[/]([^/]+)[/]page[/]([0-9]+)[/]?',
'index.php?expertise=$matches[1]&posttype=$matches[2]&paged=$matches[3]',
'top');
add_rewrite_rule('^expertise[/]([^/]*)[/]articles[/]([^/]+)[/]?',
'index.php?article=$matches[2]',
'top');
add_rewrite_rule('^expertise[/]([^/]*)[/]verdicts[/]([^/]+)[/]?',
'index.php?verdict=$matches[2]',
'top');
add_rewrite_rule('^expertise[/]([^/]*)[/]laws[/]([^/]+)[/]?',
'index.php?law=$matches[2]',
'top');
add_rewrite_rule('^expertise[/]([^/]*)[/]prosecutions[/]([^/]+)[/]?',
'index.php?prosecution=$matches[2]',
'top');
add_rewrite_rule('^expertise[/]([^/]+)[/]([^/]+)[/]?',
'index.php?expertise=$matches[1]&posttype=$matches[2]',
'top');
}
add_action('init', 'set_rewrite_rules');
Es funktioniert gut, aber es creats viele zusätzliche Seiten wie:
/expertise/[EX-NAME]/page/2/page/4/page/3/page/2/page/4/page/2/
die normalerweise sollte ein 404 aber jetzt diese Seiten Werke zurückkehren & sieht wie eine normale gültige Seite aus. Erwartetes Ergebnis: Die Seitennummerierung sollte nur mit einer einmaligen Übereinstimmung funktionieren. zum Beispiel:
/expertise/[EX-NAME]/page/2/
Alles funktioniert wie erwartet, während die set_rewrite_rules
geführt wird kommentiert.
Versuchen Sie, am Ende der ersten Rewrite-Regel ein '$' hinzuzufügen und sehen Sie, was passiert. – revo
@revo hat es versucht. zusätzliche Seiten sind noch verfügbar mit: 'add_rewrite_rule ('^ expertise [/] ([^ /] +) [/] ([^ /] +) [/] Seite [/] ([0-9] +) [/] ? $ ',' index.php? expertise = $ Übereinstimmungen [1] & posttype = $ Übereinstimmungen [2] & paged = $ Übereinstimmungen [3] ',' top '); ' –
Was passiert, wenn Sie diese spezifische Neuschreibung entfernen? Regel? – revo