301
nginx的301跳转
今天把vps上的apache换成了nginx,需要对wordpress进行了301重定向,把www.njava.com和njava.com进行合并,通过判断nginx核心变量host来实现:
server { server_name www.njava.com njava.com ; if ($host != 'www.njava.com' ) { rewrite ^/(.*)$ http://www.njava.com/$1 permanent; }
discuz给redirect.php做301跳转
类似redirect.php?tid=7&goto=lastpost这种形式URL的页面的子内容和thread-1-1-1.html一样的,但URL形式不一样,SE会当成重复内容。
这种URL形式会出现在主页、版块列表页的最后发表或最后回复位置,discuz7以前版本的上一主题、下一主题等也是此种形式的URL,现在虽然没有,但在代码中还能找到那些参数。
为什么不禁止这种URL形式的索引?
1.主要是不能控制别人链接到这种形式,如果禁止索引这种形式的URL就浪费了链接,所以要做301跳转,把链接和权重转移到标准的静态形式。
2.链接形式出现在首页,不禁止或许可以加快录
给redirct.php做301跳转
有的情况下程序要查找才能得到要显示的tid,所以只能修改程序,用php代码实现301跳转。
打开 redirect.php 文件,将 require_once DISCUZ_ROOT.’./viewthread.php’; 替换为
header("HTTP/1.1 301 Moved Permanently"); header( "Location: thread-{$tid}-1-1.html" ); exit();
文件中共有四处,都修改完就可以访问论坛,检查下效果了