同乐论坛

 找回密码
 立即注册
搜索
查看: 2073|回复: 0

教程:Emlog伪静态的替代方法

[复制链接]

71

主题

158

帖子

218

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
218
发表于 2020-1-10 16:23:32 | 显示全部楼层 |阅读模式
Emlog网站可以设置伪静态链接,其设置方法是在网站根目录增加一个.htaccess(以Apache为例)文件,内容如下:
  1. <IfModule mod_rewrite.c>
  2.                                            RewriteEngine on
  3.                                            RewriteCond %{REQUEST_FILENAME} !-f
  4.                                            RewriteCond %{REQUEST_FILENAME} !-d
  5.                                            RewriteBase /
  6.                                            RewriteRule . /index.php [L]
  7.                                         </IfModule>
复制代码
但偶遇一位Q友给出了另一种办法,就是修改include/lib/url.php中的内容为如下代码即可:
  1. <?php
  2. /**
  3. * URL处理
  4. * @copyright (c) Emlog All Rights Reserved
  5. */

  6. class Url {

  7.     /**
  8.      * 获取文章链接
  9.      */
  10.     static function log($blogId) {
  11.         $urlMode = Option::get('isurlrewrite');
  12.         $logUrl = '';
  13.         $CACHE = Cache::getInstance();

  14.         //开启文章别名
  15.         if (Option::get('isalias') == 'y') {
  16.             $logalias_cache = $CACHE->readCache('logalias');
  17.             if (!empty($logalias_cache[$blogId])) {
  18.                 $logsort_cache = $CACHE->readCache('logsort');
  19.                 $sort = '';
  20.                 //分类模式下的url
  21.                 if (3 == $urlMode && isset($logsort_cache[$blogId])) {
  22.                     $sort = !empty($logsort_cache[$blogId]['alias']) ?
  23.                         $logsort_cache[$blogId]['alias'] :
  24.                         $logsort_cache[$blogId]['name'];
  25.                     $sort .= '/';
  26.                 }
  27.                 $logUrl = BLOG_URL . $sort . urlencode($logalias_cache[$blogId]);
  28.                 //开启别名html后缀
  29.                 if (Option::get('isalias_html') == 'y') {
  30.                     $logUrl .= '.html';
  31.                 }
  32.                 return $logUrl;
  33.             }
  34.         }

  35.         switch ($urlMode) {
  36.             case '0'://默认:动态
  37.                 $logUrl = BLOG_URL . '' . $blogId . '.html';
  38.                 break;
  39.             case '1'://静态
  40.                 $logUrl = BLOG_URL . '' . $blogId . '.html';
  41.                 break;
  42.             case '2'://目录
  43.                 $logUrl = BLOG_URL . 'post/' . $blogId;
  44.                 break;
  45.             case '3'://分类
  46.                 $log_sort = $CACHE->readCache('logsort');
  47.                 if (!empty($log_sort[$blogId]['alias'])) {
  48.                     $logUrl = BLOG_URL . $log_sort[$blogId]['alias'] . '/' . $blogId;
  49.                 } elseif(!empty($log_sort[$blogId]['name'])) {
  50.                     $logUrl = BLOG_URL . $log_sort[$blogId]['name'] . '/' . $blogId;
  51.                 } else {
  52.                     $logUrl = BLOG_URL . $blogId;
  53.                 }
  54.                 $logUrl .= '.html';
  55.                 break;
  56.         }
  57.         return $logUrl;
  58.     }

  59.     /**
  60.      * 获取归档链接
  61.      */
  62.     static function record($record, $page = null) {
  63.         $recordUrl = '';
  64.         switch (Option::get('isurlrewrite')) {
  65.             case '0':
  66.                 $recordUrl = BLOG_URL . '?record=' . $record;
  67.                 if ($page)
  68.                     $recordUrl .= '&page=';
  69.                 break;
  70.             default:
  71.                 $recordUrl = BLOG_URL . 'record/' . $record;
  72.                 if ($page)
  73.                     $recordUrl = BLOG_URL . 'record/' . $record . '/page/';
  74.                 break;
  75.         }
  76.         return $recordUrl;
  77.     }

  78.     /**
  79.      * 获取分类链接
  80.      */
  81.     static function sort($sortId, $page = null) {
  82.         $CACHE = Cache::getInstance();
  83.         $sort_cache = $CACHE->readCache('sort');
  84.         $sort_index = !empty($sort_cache[$sortId]['alias']) ? $sort_cache[$sortId]['alias'] : $sortId;
  85.         $sortUrl = '';
  86.         switch (Option::get('isurlrewrite')) {
  87.             case '0':
  88.                 $sortUrl = BLOG_URL . '?sort=' . $sortId;
  89.                 if ($page)
  90.                     $sortUrl .= '&page=';
  91.                 break;
  92.             default:
  93.                 $sortUrl = BLOG_URL . '' . $sort_index;
  94.                 if ($page)
  95.                     $sortUrl = BLOG_URL . '' . $sort_index . '/page/';
  96.                 break;
  97.         }
  98.         return $sortUrl;
  99.     }

  100.     /**
  101.      * 获取作者链接
  102.      */
  103.     static function author($authorId, $page = null) {
  104.         $authorUrl = '';
  105.         switch (Option::get('isurlrewrite')) {
  106.             case '0':
  107.                 $authorUrl = BLOG_URL . '?author=' . $authorId;
  108.                 if ($page)
  109.                     $authorUrl .= '&page=';
  110.                 break;
  111.             default:
  112.                 $authorUrl = BLOG_URL . 'author/' . $authorId;
  113.                 if ($page)
  114.                     $authorUrl = BLOG_URL . 'author/' . $authorId . '/page/';
  115.                 break;
  116.         }
  117.         return $authorUrl;
  118.     }

  119.     /**
  120.      * 获取标签链接
  121.      */
  122.     static function tag($tag, $page = null) {
  123.         $tagUrl = '';
  124.         switch (Option::get('isurlrewrite')) {
  125.             case '0':
  126.                 $tagUrl = BLOG_URL . '?tag=' . $tag;
  127.                 if ($page)
  128.                     $tagUrl .= '&page=';
  129.                 break;
  130.             default:
  131.                 $tagUrl = BLOG_URL . 'tag/' . $tag;
  132.                 if ($page)
  133.                     $tagUrl = BLOG_URL . 'tag/' . $tag . '/page/';
  134.                 break;
  135.         }
  136.         return $tagUrl;
  137.     }

  138.     /**
  139.      * 获取首页文章分页链接
  140.      */
  141.     static function logPage() {
  142.         $logPageUrl = '';
  143.         switch (Option::get('isurlrewrite')) {
  144.             case '0':
  145.                 $logPageUrl = BLOG_URL . '?page=';
  146.                 break;
  147.             default:
  148.                 $logPageUrl = BLOG_URL . 'page/';
  149.                 break;
  150.         }
  151.         return $logPageUrl;
  152.     }

  153.     /**
  154.      * 获取评论链接
  155.      */
  156.     static function comment($blogId, $pageId, $cid) {
  157.         $commentUrl = Url::log($blogId);
  158.         if ($pageId > 1) {
  159.             if (Option::get('isurlrewrite') == 0 && strpos($commentUrl, '=') !== false) {
  160.                 $commentUrl .= '&comment-page=';
  161.             } else {
  162.                 $commentUrl .= '/comment-page-';
  163.             }
  164.             $commentUrl .= $pageId;
  165.         }
  166.         $commentUrl .= '#' . $cid;
  167.         return $commentUrl;
  168.     }

  169.     /**
  170.      * 获取导航链接
  171.      */
  172.     static function navi($type, $typeId, $url) {
  173.         $sorts = Cache::getInstance()->readCache('sort');
  174.         switch ($type) {
  175.             case Navi_Model::navitype_custom:
  176.             case Navi_Model::navitype_home:
  177.             case Navi_Model::navitype_t:
  178.             case Navi_Model::navitype_admin:
  179.                 $url = $url;
  180.                 break;
  181.             case Navi_Model::navitype_sort:
  182.                 $url = Url::sort($typeId);
  183.                 break;
  184.             case Navi_Model::navitype_page:
  185.                 $url = Url::log($typeId);
  186.                 break;
  187.             default:
  188.                 $url = (strpos($url, 'https') === 0 ? '' : BLOG_URL) . $url;
  189.                 break;
  190.         }
  191.         return $url;
  192.     }

  193. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|同乐论坛  

GMT+8, 2024-3-29 13:33 , Processed in 0.076173 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表