走过平凡人生、留下平凡足迹 注册 | 登陆

不支持rewrite情况下使用sablog静态链接

因为虚拟主机不支持ReWreite,所以sablog的URL忧化只能是个摆设。那能不能在空间不支持rewrite的情况下使用静态链接呢?今天在使用wordpress的静态链接的时候想到了一个办法。

原理:利用$_SERVER['PATH_INFO']取得相关的变量。然后再用header直接重定向该页面。

生成的链接方式为http://www.10kx.com/blog/default.php/category-5-1.html

效果演示可以查看www.10kx.com/blog

有兴趣的朋友可以看看操作过程,过程比较简单,只修改了sablog部份代码和添加一个default.php文件

步骤一:

新建一个default.php文件,内容如下:

 

PHP代码
  1. <?php   
  2. function modReWrite() {   
  3.     $u = substr($_SERVER['PATH_INFO'], 1);   
  4.     $u = str_replace(".html","",$u);   
  5.     $a = explode('-'$u);   
  6.     if($a[0] == 'show') {   
  7.         $url = '../index.php?action=show&id='.$a[1].'page='.$a[2];   
  8.     } elseif($a[0] == 'category') {   
  9.         $url = '../index.php?action=index&cid='.$a[1].'page='.$a[2];   
  10.     } elseif($a[0] == 'index') {   
  11.         $url = '../index.php?action=index&page='.$a[1];   
  12.     } else {   
  13.         $url = '../index.php?action='.$a[0];   
  14.     }   
  15.     header("Location:".$url);   
  16.     //echo $url;   
  17.   
  18. }   
  19.   
  20. modReWrite();   
  21.   
  22. ?>   

第二步:修改include目录下的func_rewrite.php文件,将这几个函数修改为以下内容,其实只是修改了链接地址:

PHP代码
  1. //转换分类的连接  
  2. function rewrite_category($head$cid$page = 1, $class = '') {  
  3.     global $options;  
  4.     !$page && $page = 1;  
  5.     //添加了这里  
  6.     $head = 'default.php/'.$head;  
  7.     return '<a href="'.$head.'category-'.$cid.'-'.$page.'.'.$options['rewrite_ext'].'"'.($class ? ' class="'.$class.'"' : '').'>';  
  8. }  
  9.   
  10. //转换归档的连接  
  11. function rewrite_archives($head$date$page = 1, $class = '') {  
  12.     global $options;  
  13.     //添加了这里  
  14.     $head = 'default.php/'.$head;  
  15.     !$page && $page = 1;  
  16.     return '<a href="'.$head.'archives-'.$date.'-'.$page.'.'.$options['rewrite_ext'].'"'.($class ? ' class="'.$class.'"' : '').'>';  
  17. }  
  18.   
  19. //转换文章的连接  
  20. function rewrite_show($head$id$page = 1, $extra = ''$class = '') {  
  21.     global $options;  
  22.     //添加了这里  
  23.     $head = 'default.php/'.$head;  
  24.     !$page && $page = 1;  
  25.     return '<a href="'.$head.'show-'.$id.'-'.$page.'.'.$options['rewrite_ext'].($extra ? '#'.$extra : '').'"'.($class ? ' class="'.$class.'"' : '').'>';  
  26. }  
  27.   
  28. //转换其他页面的连接  
  29. function rewrite_page($head$action$page = 1, $class = '') {  
  30.     global $options;  
  31.     //添加了这里  
  32.     $head = 'default.php/'.$head;  
  33.     !$page && $page = 1;  
  34.     if (in_array($action,array('search','archives','reg','login','links'))) {  
  35.         $pagelink = '';  
  36.     } else {  
  37.         $pagelink = '-'.$page;  
  38.     }  
  39.     return '<a href="'.$head.$action.$pagelink.'.'.$options['rewrite_ext'].'"'.($class ? ' class="'.$class.'"' : '').'>';  
  40. }  

第三步:后台打开url忧化就可以了,简单吧,呵呵,虽然不是很完美,但也能用上静态链接了。谁叫咱的空间空不提供ReWrite功能呢!将就着用了:)。最完美的解决办法是什么呢?换一个支持reWrite的空间,有需要的朋友可以去奇矩互动看看。感觉速度和服务器配置都非常不错。

 

 

Tags: rewrite sablog

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5

发表评论

评论内容 (必填):