把帖子url 换成 绝对链接

参观者 9天前 235

hook  这个插入点  model_url_start.php


文件内容写

	$r = $path = $query = '';
	if(strpos($url, 'thread') !== FALSE) {
		$path = 'http://baidu.com/'; //这里写你的域名,后面要加"/"		
	} else {
		$path = '';
	}
	$query = $url;
	if($conf['url_rewrite_on'] == 0) {
		$r = $path . '?' . $query . '.htm';
	} elseif($conf['url_rewrite_on'] == 1) {
		$r = $path . $query . '.htm';
	} 
	// 附加参数
	if($extra) {
		$args = http_build_query($extra);
		$sep = strpos($r, '?') === FALSE ? '?' : '&';
		$r .= $sep.$args;
	}
	
	// hook model_url_end.php
	
	return $r;


这里只让帖子url使用绝对链接

其它链接依然是相对链接,例如版块,用户等



最新回复 (6)
  • 有天 9天前
    引用 2
    应该所有链接都处理为绝对路径
  • 参观者 9天前
    引用 3
    我草,这不是我弄的版本
  • 参观者 9天前
    引用 4
    有天 应该所有链接都处理为绝对路径
    这样进后台时会报错的,因为后台大部分路径是这样的  ../<?php echo url(...);>
    导致URL变成     ../http://baidu.com/admin/ 这样子
    除非手动修改一下后台各个地方,去掉  ../
  • 参观者 8天前
    引用 5

    有办法了,这样子

    global $uid;
    	if(empty($uid)) {
    		$r = 'https://baidu.com/' . $url . '.htm';
    	} else {
    		$r =  '?' . $url . '.htm';
    	}
    	// 附加参数
    	if($extra) {
    		$args = http_build_query($extra);
    		$sep = strpos($r, '?') === FALSE ? '?' : '&';
    		$r .= $sep.$args;
    	}
    	
    	// hook model_url_end.php
    	
    	return $r;

    这样未登陆会员(即游客和搜索引擎),就是见到绝对链接

    登陆的会员,所见到的就是相对链接,也不影响后台。


    这样还有一个好处,就是会员和非会员的页面链接是不同的,我们可以用CDN缓存非会员那个版本。

  • 参观者 8天前
    引用 6

    也可以这样

            $r = 'https://baidu.com/' . $url . '.htm';
    
        // 附加参数
        if($extra) {
            $args = http_build_query($extra);
            $sep = strpos($r, '?') === FALSE ? '?' : '&';
            $r .= $sep.$args;
        }
         
        // hook model_url_end.php
         
        return $r;


返回
发新帖