Apache2的地址重写功能,链接跳转

Linux 2017-03-17

最近,我发现最初嗯VIEW了链接构成有问题,由于它的链接格式是
www.umview.com/所属分类/文章自定义链接名
这样的格式有一个弊端,一旦文章的分类改变,那么链接地址就会变化,也就是说这么久以来搜索引擎收录结果都白费了,说白了,人们通过搜索引擎搜索到的我的文章都指向了一个错误的地址,所以我们需要改成这样
www.umview.com/文章自定义链接名
这样就简单明了了!
那么,这就尴尬了,如何解决呢?
有两种方法。

1,更改typecho默认的路由地址,亲测可行,但是很麻烦,文章如果很多,对数据库的压力很大,所以我没有采取这种方法。不过附具体实现方法。 我是通过插件实现的,当然了,这个插件需要我们自己写:(。 我们可以在插件目录中新建一个叫 Router 的文件夹。然后再创建两个文件 Plugin.php 和 Action.php (注意权限) 具体内容如下. Plugin.php ``` /**

  • Router

  • @package Router

  • @author nash.zhao

  • @version 1.0.0

  • @link https://www.umview.com
    */
    class Router_Plugin implements Typecho_Plugin_Interface {

    public static function activate() {
    Helper::addRoute("route_to_my_action","/share/test","Router_Action",'action');
    Helper::addRoute("test","/share/doc","Router_Action",'action');
    Helper::addAction('RouterAction', 'Router_Action');

    }

    public static function deactivate() {
    Helper::removeRoute("route_to_my_action");
    Helper::removeRoute("test");
    Helper::removeAction('RouterAction');
    }
    public static function config(Typecho_Widget_Helper_Form $form)
    {
    }

    /**

    • 个人�~T��~H��~Z~D�~E~M置�~]��~]�
    • @access public
    • @param Typecho_Widget_Helper_Form $form
    • @return void
      */
      public static function personalConfig(Typecho_Widget_Helper_Form $form){}

}


Action.php

public function execute() { //Do nothing } public function action(){ header( "Location: /test" ); }

}

然后我们保存激活插件就好,这是它会修改数据库的内容,也就是改typecho的路由。具体路由内容看数据库。
第二种方法是该apache的配置文件,我改的是.htaccess.

本文由 nash.zhao 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论