Url rewrite with htaccess

时间:2011-04-13 作者:sta777

我刚刚更新了一个网站.php 指向Wordpress 3.1网站的URL,该网站不使用文件类型扩展名(自定义永久链接)。

他们在导入的内容中有很多引用到以.php 现在转到错误404页。

我的问题是:我应该在htaccess文件中使用什么重写规则来重定向单击链接的人www.somesite.com/glossary.php#anchor, 到www.somesite.com/glossary/#anchor?

非常感谢您的帮助,S。

2 个回复
最合适的回答,由SO网友:MathSmath 整理而成

您的首要任务应该是更新导入内容中的链接,这样人们就不会首先获得指向旧URL的链接。使用SQL替换应该很容易做到这一点。就你的情况而言,应该是:

UPDATE wp_posts SET post_content = REPLACE(post_content, \'.php\', \'/\');
不过,你必须小心查找/替换,因为它们有时会替换你没有预料到的东西。在这样做之前,最好先备份数据库。

至于htaccess修复程序:如果你有很多入站链接,那么对旧URL执行301s绝对是个好主意,这会转化为SEO价值。但是,您为此投入的工作量应该与这些入站链接的价值成比例。

我想尝试重写所有内容不是一个好主意。php请求,因为Wordpress通常需要生成合法的请求。例如,前端上的所有请求都通过索引路由。当我试图建立一个像你要求的那样的规则时,它完全破坏了WordPress。知道我在说什么吗?

另一种方法是为要301的每个页面设置单独的规则。当然,如果您有很多链接,这可能是个坏主意,因为这很麻烦,而且可能会影响性能。

希望其他人能为您提供一个棘手的htaccess解决方案,但我被难住了。

SO网友:John P Bloch

据我所知,url末尾的哈希(#anchor 此处)从不发送到服务器。然而,如果你能让WordPress在编写词汇表时加载正确的内容。如果请求php,则锚定应该同样工作。

MathSmath说301重定向很重要是对的,但我建议在WordPress中运行这些东西,而不是通过。htaccess。

具体来说,我建议使用Redirection 插件。它提供了一个简单易用的GUI来管理WordPress不会自动处理的所有重定向。

结束

相关推荐