我有一个名为 example.com 的网站。该网站有几个子域 a.example.com、b.example.com、c.example.com 等。我想让域的访问者选择特定的子域作为首选页面。从这一点开始,当用户访问该页面时,他们将被自动重定向到他们的首选页面。
我不知道如何做到这一点,甚至不知道在哪里看。
我有一个名为 example.com 的网站。该网站有几个子域 a.example.com、b.example.com、c.example.com 等。我想让域的访问者选择特定的子域作为首选页面。从这一点开始,当用户访问该页面时,他们将被自动重定向到他们的首选页面。
我不知道如何做到这一点,甚至不知道在哪里看。
嗯,你需要
a) 存储偏好的位置,例如在 cookie 中(使用PHP或Javascript)或数据库中(如果用户已登录)
b)用户可以在那里设置偏好的页面
c) 一些将用户重定向到他们喜欢的站点的脚本(例如使用PHP中的 header-function )
在页面(settings.php )上添加子域url ,如下所示:
<a href="choose.php?sub=abc">Choose ABC Subdomain</a><br/>
<a href="choose.php?sub=bbc">Choose BBC Subdomain</a><br/>
<a href="choose.php?sub=subin">Choose subin Subdomain</a>
选择.php:
<?
if($_GET['sub']!=''){
$sub=$_GET['sub'];
setcookie("subwhere",$sub, time()+301014600, "/", "example.com"));
header("Location:http://$sub.example.com");
}
?>
在index.php上包括页面顶部的checkredirection.php文件:
<?
include("checkredirection.php");
?>
检查重定向.php:
<?
$coo=$_COOKIE['subwhere'];
if($coo!="" && $_SERVER['SERVER_NAME']!="$coo.example.com"){
header("Location:http://$coo.example.com");
}
?>
在您希望用户重定向的页面上包含checkredirection.php 。
首先,用户是注册并登录的,还是您通过他们的 IP 地址来识别他们?
注册并登录:当他们选择他们的偏好时,将他们的用户 ID、电子邮件或您用作数据库中主键(希望是 ID)的任何内容记录在另一个表中,以及他们的首选子域。
未注册/未登录:在表中记录他们的 IP 地址和子域选择。
基本表结构可以是
id - ip_address(或 user_id) - 子域
然后执行 if 语句检查数据库的 IP 或用户 ID。
<?
/* database checking code, etc, assuming we're returning $result from the query */
$subdomain = @mysql_result($result,0,'subdomain');
if($subdomain != '') header('Location: '.$subdomain.'.yourdomain.com');
?>
这只是一种策略,而且可能是最基本的策略。显然,您必须编写代码(我假设您知道如何执行此操作并想要该策略,否则请查看教程而不是在这里询问),并确保在绝对生成任何输出之前调用标头(即在文件的顶部)。
如果它未能找到偏好,他们只会停留在该页面上。
在写这篇文章时半睡半醒,所以如果任何信息不完整或无法理解,我深表歉意。