中国最大的自助建站提供商——>>意动社区 成功案例 精美模板
关于意动 | 产品全览 | 免费体验 | 服务与支持 | 建站资源与素材 | 访问旧版网站
重定向数化的会员URL地址

只要在设置了cookie或会话参数提供引用之后,URL地址就可以重定向到“主要”URL地址,那么就有可能使用参数化的会员URL地址。本节展示了两个实例。在练习中逐步实现了它们。

 

这里展示的解决方案有一个共同点,就是当请求包含会员ID的URL地址时,首先将那个会员ID保留在别的什么地方,然后进行301重定向转到那个不使用会员参数的URL地址。例子使用访问者会话来存储会话来存储会员ID,读者也可以试着使用cookie。

 

1、实例#1

 

这个例子假定有会员URL地址http://seophp.example.com/Products/SEO-Toolbox-C6/Link-Juice-P31.html?aff_id=987。最终要重定向到的地址是http://seophp.example.com/Products/SEO-Toolbox-C6/Link-Juice-P31.html。

 

重定向多关键词会员URL地址

 

(1)打开.htaccess文件并找到重写多关键词产品URL地址的那一行:

 

RewriteRule ^Products/.*-C([0-9]+)/.*-P([0-9]+)\.html$ /Product.php?category_id=$1&Product_id=$2 [L]

 

修改这一行,添加以下内容至行末:

 

RewriteRule ^Products/.*-C([0-9]+)/.*-P([0-9]+)\.html$ /Product.php?category_id=$1&product_id$2%{QUERY_STRING} [L]

 

(2)修改product.php如下:

 

<?php

require_once 'include/url_redirect.inc.php';

session_start();

if(isset($_REQUEST['aff_id']))

{

$_SESSION['aff_id']=$_REQUEST['aff_id'];

}

fix_category_product_url();

echo 'You have selected product #'.$_GET['product_id'].' from actegory #'.$_GET['category_id'];

 

echo '<br><br>You got here through affiliate:';

if(!isset($_SESSION['aff_id']))

{

echo '(no affiliate)';

}else{

echo $_SESSION['aff_id'];

}

 

(3)现在测试新的脚本。第一个测试是不使用会员ID加载产品页面http://seophp.example.com/Products/SEO_Toolbox-C6/Link-Juice-P31.html。

 

(4)现在添加会员ID。加载http://seophp.example.com/Products/SEO-Toolbox-C6/Link-Juice-P31.html?aff_id=987。期待正确重定向到主产品页面。并且仍然能保留会员ID。

 

URL地址不再包括任何会员ID,但页面仍保留了会员ID。这个效果成功实现了,并且只添加了几行PHP代码!再次分析所有的事情,以下是mod_rewrite规则:

 

RewriteRule ^Products/.*-C([0-9]+)/.*-P([0-9]+)\.html$ /product.php?category_id=$1&product_id=$2&%{QUERY_STRING} [L] 

 

参数{QUERY_STRING}是个特殊的变量,它由存储了URL地址中查询字符串的mod_rewrite提供。PewriteRule仍然和以前一样,对URL地址进行匹配,但是这次将在重写后的URL地址中附加那些参数。

 

这样,当product.php被执行,它将访问参数aff_id。仅仅需要添加最少量的代码到product.php中,主要工作是验证在查询字符串中是否在参数aff_id。如果存在,就在用户会话中保存会员ID:

 

session_start();

if(isset($_REQUEST['aff_id']))

{

$_SESSION['aff_id']=$_REQUEST['aff_id'];

}

 

重定向本身是由老朋友fix_category_product_url()函数来完成。这个函数验证URL地址是否与生成的产品URL地址相同,如果不相同就完成一个自动的301重定向到“正确的”URL地址;在此情况下,正确的URL地址就是一个不包含aff_id参数的产品URL地址。

 

fix_category_product_url();

 

在带会员ID的产品页面第一次被加载时,它将被重定向到那个不包含任何查询字符串参数的“正确”版本。当product.php被重新加载,它将执行代码显示产品细节和会员ID。这次,从会话中读取会员ID:

 

echo '<br><br>You got here through affiliate:';

if(!isset($_SESSION['aff_id']))

{

echo '(no affiliate)';

}else{

echo $_SESSION['aff_id'];

}

 

 


用户名:
密  码:
服务器1:   服务器2:   试用:
      
新手建站全过程视频讲解教程   成功案例
在线客服
如何制作网站

FLASH和AJAX

使用自定义标记语言来生成搜索引擎友好的HTML

搜索引擎友好的HTML

用图像来替换文字

使用sIFR

可检索的图像和图形文本

实现可检索的弹出窗口

搜索引擎友好的JavaScript(二)

搜索引擎友好的HTML和JavaScript

重定向数化的会员URL地址例子#2

重定向数化的会员URL地址

常见重复页面的解决方案(三)

常见重复页面的解决方案(二)

常见重复页面的解决方案(一)

网络空间的优势

免费空间的缺点与分类

如何挑选免费空间

空间是什么

帮助中心 付款方式 合同下载
Copyright 2000 - 2008
总机:010-64681504  64684094   传真:010-64673024
意动时代建网站联系:888@edo2008.com  代理意动时代自助建站业务:zhangyong@edo2008.com
非上班时间值班电话:13693193565 北京市通信管理局:京ICP证040119号
地址:(100028)北京市朝阳区静安庄一区领先商务中心106