-1

我有一个名为 example.com 的网站。该网站有几个子域 a.example.com、b.example.com、c.example.com 等。我想让域的访问者选择特定的子域作为首选页面。从这一点开始,当用户访问该页面时,他们将被自动重定向到他们的首选页面。

我不知道如何做到这一点,甚至不知道在哪里看。

4

3 回答 3

1

嗯,你需要

a) 存储偏好的位置,例如在 cookie 中(使用PHPJavascript)或数据库中(如果用户已登录)

b)用户可以在那里设置偏好的页面

c) 一些将用户重定向到他们喜欢的站点的脚本(例如使用PHP中的 header-function )

于 2013-10-26T12:29:32.303 回答
1

在页面(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 。

于 2013-10-26T12:29:39.540 回答
1

首先,用户是注册并登录的,还是您通过他们的 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');
?>

这只是一种策略,而且可能是最基本的策略。显然,您必须编写代码(我假设您知道如何执行此操作并想要该策略,否则请查看教程而不是在这里询问),并确保在绝对生成任何输出之前调用标头(即在文件的顶部)。

如果它未能找到偏好,他们只会停留在该页面上。

在写这篇文章时半睡半醒,所以如果任何信息不完整或无法理解,我深表歉意。

于 2013-10-26T12:36:47.287 回答