您的首要任务应该是更新导入内容中的链接,这样人们就不会首先获得指向旧URL的链接。使用SQL替换应该很容易做到这一点。就你的情况而言,应该是:
UPDATE wp_posts SET post_content = REPLACE(post_content, \'.php\', \'/\');
不过,你必须小心查找/替换,因为它们有时会替换你没有预料到的东西。在这样做之前,最好先备份数据库。
至于htaccess修复程序:如果你有很多入站链接,那么对旧URL执行301s绝对是个好主意,这会转化为SEO价值。但是,您为此投入的工作量应该与这些入站链接的价值成比例。
我想尝试重写所有内容不是一个好主意。php请求,因为Wordpress通常需要生成合法的请求。例如,前端上的所有请求都通过索引路由。当我试图建立一个像你要求的那样的规则时,它完全破坏了WordPress。知道我在说什么吗?
另一种方法是为要301的每个页面设置单独的规则。当然,如果您有很多链接,这可能是个坏主意,因为这很麻烦,而且可能会影响性能。
希望其他人能为您提供一个棘手的htaccess解决方案,但我被难住了。