在Wordpress中将GET变量更改为url路径


Change GET vars to url path in Wordpress

我希望重写规则能够将GET变量更改为更好的url。

例如:

example.com?category=news 到: example.com/category/news

我还希望其他GET变量保持独立。

示例:

example.com?category=新闻&sort=asc 到: example.com/category/news&sort=asc

修改需要在wordpress htaccess文件中进行:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

我不想重定向,我只想更改的网址。

更新1

我试过林的例子。它起作用了,但我想在之前添加一个/en,我也希望这个类别是可变的。

我尝试了Mod重写生成器,得到了这个结果,但它不起作用。

RewriteEngine On
RewriteRule ^category/([^/]*)$ /en/?category=$1 [L]

接下来,我试图将两者结合起来,但我还没有弄清楚问题出在哪里

RewriteEngine On
RewriteCond %{THE_REQUEST} ' /(index'.php)?'?/en/category=$1&?([^' ]*)
RewriteRule ^ /en/category/%1?%2 [L,R]
RewriteRule ^category/([^/]*)$ /en/?category=$1 [L,QSA]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

尝试在wordpress规则之前添加这些规则:

RewriteEngine On
RewriteCond %{THE_REQUEST} ' /(index'.php)?'?category=news&?([^' ]*)
RewriteRule ^ /category/news?%2 [L,R]
RewriteRule ^category/news$ /?category=news [L,QSA]