我在更改Wordpress中的分页URL时遇到问题。我知道通用的解决方案是更改Wordpress核心文件,但我只需要一个类别的解决方案。也许只有一个类别可以通过htaccess来完成?
现在有这样的网址: http://mysite.com/categoryname/ 页 / 3
我希望将其更改为: http://mysite.com/categoryname/3
感谢您的回复
答案 0 :(得分:3)
您需要与%{THE_REQUEST}
匹配,以确保您与实际请求匹配,而不是内部重写的URI:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /categoryname/page/([0-9]+)
RewriteRule ^ /categoryname/%1 [L,R=301]
RewriteRule ^/categoryname/([0-9]+)$ /categoryname/page/$1 [L]
这些必须在wordpress规则之前。
答案 1 :(得分:2)
基本上,你应该使用这个htaccess规则:
RewriteRule ^categoryname/page/([0-9]+)$ /categoryname/$1 [L,R=301]
RewriteRule ^categoryname/([0-9]+)$ /categoryname/page/$1 [L]
categoryname/page/3
更改为categoryname/3
。categoryname/3
到categoryname/page/3
的不可见重定向。然后,您可以在代码中同时使用categoryname/page/3
和categoryname/3
,这将始终在网址中显示简短版本。
请注意,其他类似网址可能存在一些问题(请确保您永远不会在其他地方使用categoryname/3
)
修改强>
无限循环......我怎能错过它!
避免此循环的方法是找到category/page/3
的“最终网址”(例如:index.php?category_name=categoryname&page=3
),并在第二条规则中使用它:
RewriteRule ^categoryname/page/([0-9]+)$ /categoryname/$1 [L,R=301]
RewriteRule ^categoryname/([0-9]+)$ /index.php?category_name=categoryname&page=$1 [L]