Как я могу исправить эту проблему правила перезаписи - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь изменить URL в WordPress.

Это то, что я имею в качестве URL http://127.0.0.1/projectname/pagename/val1/val2/val3

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /projectname/
    RewriteRule pagename/(.*)/(.*)/(.*) pagename/?param1=$1&param2=$2&param3=$3 [L,QSA]
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /projectname/index.php [L]
</IfModule>

Я хочу, чтобы мой сайт рассматривал это как

http://127.0.0.1/projectname/pagename/?param1=val1&param2=val2&param3=val3

1 Ответ

0 голосов
/ 01 октября 2019

Ниже представлено решение в WordPress

add_action('init', 'custom_rule');

function custom_rule(){
    add_rewrite_tag('%param1%','([^&]+)');
    add_rewrite_tag('%param2%','([^&]+)');
    add_rewrite_tag('%param3%','([^&]+)');
    add_rewrite_rule('^pagename/([^/]*)/([^/]*)/([^/]*)/?','index.php?pagename=pagename&param1=$matches[1]&param2=$matches[2]&param3=$matches[3]','top');
    flush_rewrite_rules();
}
...