我正在向现有CMS添加“漂亮”网址,自动生成菜单,并且新的“漂亮”网址将作为单独的模块独立处理。自动生成的菜单总是有一个看起来像index.php?menu_id=n
的网址,我们希望看到这些网址,例如。 /news
或/products
我目前正处于这样的地步,我必须决定是否要重写当前系统的所有输出,或者只是放入一个钩子,我将其重定向到'漂亮'的URL。
换句话说,我应该连接到数据库,获取所有“漂亮”的URL,运行WYSIWYG,新闻模块,论坛等的现有输出,并执行一些str_replace或其他字符串操作(我认为这将是一个相当乏味和无聊的过程),或者我应该简单地插入并抛出301重定向index.php?menu_id=3
到/news
谷歌(或其他搜索引擎)会因为菜单中有301而惩罚我吗?
答案 0 :(得分:2)
301是永久重定向,搜索引擎了解它们。他们不会因为301而惩罚你。
我的建议 - 两者兼而有之。对于您控件中的页面,请修改网址。对于您无法控制的(第三方博客,其他网站等)和您自己难以理解的网页,301应该没问题。
301s也有性能方面,所以尽可能避免使用它们。但如果你没有选择,那就可以。
答案 1 :(得分:1)
301重定向在这种情况下是正确的行为,因为资源已“移动”,Google根本不应该惩罚你。
答案 2 :(得分:1)
我建议尝试使用简单的清理过程尽可能多地替换。我遇到了同样的问题并通过...解决了这个问题。
1)检测对旧URL的请求并发出301重定向(特别适用于页面的外部链接)
2)任何自动生成的URL(如菜单)都会随着代码更改而更新,以生成友好的URL
3)对于WYSIWYG,我在所有内容中执行了一次清理,以使用新的友好URL替换旧URL,这意味着将更少的重定向发送到客户端,并且状态栏中不显示“旧”样式的URL。
答案 3 :(得分:0)
当然你必须重写输出系统 或者在所有
中重写URL都没有意义