如何动态地重定向非现有页面'到不同的领域

时间:2017-10-05 18:53:34

标签: javascript php html .htaccess redirect

我会尝试解释: 我有一个域名 - example.com没有任何其他页面。 我希望能够从非现有链接创建重定向,example.com/whatever到nba.com,如何在不创建example.com/whatever页面的情况下执行此操作? 我希望有一个没有网页的网站,只有域名,这对我来说是一个重定向中心,我的意思是 - 我希望有来自example.com/******的100个随机链接,第一个链接将重定向到website1 ,第2位到website2.com等。

据我所知,我必须拥有一个数据库,其中至少有一个表,第一行有2行 - 第二行是example.com/***的随机链接 - 指向重定向网站的链接。但是如果页面不存在,如何进行重定向? 使用PHP或其他技术?请帮忙。

2 个答案:

答案 0 :(得分:1)

可以通过.htaccess和php文件来实现:

<强> htaccess的:

ErrorDocument 404 /404.php

<强> 404.php:

<?php
   if ($_SERVER["HTTP_HOST"] == "example.com") // current domain
      header('Location: http://nba.com/', TRUE, 301);
?>

请参阅此答案:https://stackoverflow.com/a/18764078/5692251

答案 1 :(得分:0)

您需要.htaccess。找到域所在的主机帐户的根目录(通常为public_html)并创建一个.htaccess文件,其中包含以下内容:

ErrorDocument 404 /index.php

现在在根目录中创建一个index.php文件,其内容如下:

<?php 
$websites = array( 'http://www.websiteone.com', 'http://www.websitetwo.com' );
$random_website = array_rand( $websites );
header( "Location: {$random_website}", TRUE, 301 );
?>

您可以继续向$website数组变量添加元素。此示例假定您的服务器已设置,可以使用PHP来运行代码。

如果要配置数据库以检索值:

<?php 
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM websites ORDER BY RAND() LIMIT 1";
$result = $conn->query($sql);
$website = mysql_fetch_object($result);
$random_website = $website->website;
$conn->close();
header( "Location: {$random_website}", TRUE, 301 );
?>

此代码假定数据库中的表名为websites,其中包含一个名为website的字段,其中存储了URL。