重写规则:将URL中的一部分文本更改为另一部分



我想更改我的wordpress的url,我已经读到我可以用重写规则来实现,但不幸的是,它对我不起作用。以下是详细信息:

我有一个wordpress主题,它给了我这样的URL:

www.my-theme.pl/portfolio_category/red-flower/
www.my-theme.pl/portfolio_category/blue-flower/
www.my-theme.pl/portfolio_category/black-trees/
www.my-theme.pl/portfolio_category/white-roses/

我想通过.htaccess重写URL以接收:www.my-theme.pl/gardens/red-flower/

正如你所看到的,我只想用/agardens/text替换URL中的/portfolio_category/,因为之后是不同的帖子名称,但/portfolio _categori/始终保持不变。

我输入了这个规则:

RewriteRule ^/portfolio_category/$ /gardens/$ [NC]

不幸的是,它不起作用。你能说明如何正确使用吗?以下是我的全部.htaccess代码:

Options -Indexes
AuthType Basic
AuthName "password"
AuthUserFile /home/*******************/.htpasswd
Require valid-user
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/portfolio_category/$ /gardens/$ [NC]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

*******已替换为我的htpasswd的工作路径。这是我第一次做任何重写更改,我对此并不熟悉。我认为我已经正确阅读了教程,但更改仍然不起作用。

波兰致以最良好的祝愿,Jacek

如果我正确理解您想要什么,那么您的重写规则将被颠倒,并且您不包括以下目录。尝试:

RewriteRule ^/gardens/(.*)$ /portfolio_category/$1 [NC]

这会将/agardens/更改为/portfolio_category/。(.*)$将所有内容收集到URL的末尾,然后$1将其添加到新URL的末尾。

谢谢你,bodie先生,我认为我的问题已经解决了,我只需要将更改代码编码到我的主题中,通过主题引擎获得不同的URL,这样URL从一开始就正确无需重写。

最新更新