2013-01-11 46 views
0

每次用戶來我的主頁即index文件隨機重定向我想一個腳本來運行,因此不同的和我的網站的隨機頁面每次觀看。從index.html的另一個文件

我寧願用Javascript或PHP來做到這一點。

var randomNumber = functionThatReturnsRandomNumber(10); 
var urlRedirect; 

if (randomNumber == 0) 
    urlRedirect = 'xxxx.com/folder0/index.html 

if (randomNumber == 1) 
    urlRedirect = 'xxxx.com/folder1/index.html 

if (randomNumber == 2) 
    urlRedirect = 'xxxx.com/folder2/index.html 

... 

if (randomNumber == 9) 
    urlRedirect = 'xxxx.com/folder9/index.html 

,然後一些代碼,瀏覽器重定向到urlRedirect.

任何想法:索引文件我想象會是這個樣子的僞代碼?

編輯

我想我需要更加明確。請有人建議我如何能夠完成上述?謝謝。

+0

是_「有什麼想法? 「_你的實際問題? – wakooka

+3

爲urls使用一個數組,所以你不會浪費全世界的if()語句......他們是一個有限的資源,你知道...... –

+0

@ jerome.s請參閱編輯。 –

回答

1

如果您打算使用Javascript,請使用var randomnumber=Math.floor(Math.random()*11);生成1到10之間的隨機數。然後使用window.location.href=urlRedirect;將用戶重定向到您選擇的頁面。

+0

這在我看來是最優雅的答案。怎麼沒有投票? –

1

使用重定向標頭。

<?php 
$location = "http://google.com"; 
header ('HTTP/1.1 301 Moved Permanently'); 
header ('Location: '.$location); 
?> 

對於隨機重定向:

<?php 
$urls = array('http://1.com',"http://2.com","http://3.com"); //specify array of possible URLs 
$rand = rand(0,count($urls)-1); //get random number between 0 and array length 
$location = $urls[$rand]; //get random item from array 
header ('HTTP/1.1 301 Moved Permanently'); //send header 
header ('Location: '.$location); 
?> 
4

+1優秀的用戶體驗。作爲一個用戶,你最好在PHP級別這樣做,否則就會出現loading->page glimpse->loading->new page的呃逆(如果發生這種情況,我會覺得粗略)。

但是,只要你心中有「可能目標」的列表,你可以使用像你index.php頂部以下內容:

<?php 
    $possibilities = array(/*...*/); 
    header('Location: ' + $possibilities[rand(0, count($possibilities) - 1)]); 

雖然我大概夫婦與無論是會話還是cookie,所以它只能在第一次訪問時起作用(除非你希望它每次都工作)。

+0

你需要'rand(0,count($ possibilities) - 1)'; [rand](http://php.net/manual/en/function.rand.php)函數需要一個封閉的區間,而不是一個半開放的區域。 – PleaseStand

+0

@PleaseStand:好的電話,謝謝。這主要是因爲在rand(0,count())上使用'rand(0,1000)%count()'進行辯論以獲得更好的位移。; p –

0

使用PHP:

<?php 
$randomNumber = rand(10); 
$urlRedirect = ''; 

if ($randomNumber == 0) 
    $urlRedirect = 'xxxx.com/folder0/index.html'; 

if ($randomNumber == 1) 
    $urlRedirect = 'xxxx.com/folder1/index.html'; 

if ($randomNumber == 2) 
    $urlRedirect = 'xxxx.com/folder2/index.html'; 

... 

if ($randomNumber == 9) 
    $urlRedirect = 'xxxx.com/folder9/index.html'; 

header ('Location: '.$urlRedirect); 
0

重定向到一個隨機的子目錄:

<?php 
$myLinks = array("dir-1/", 
    "dir-2/", 
    "dir-3/", 
    "dir-4/", 
    "dir-5/"); 

$randomRedirection = $myLinks[array_rand($myLinks)]; 
header("Location: $randomRedirection"); 
?> 

重定向到任意網站:

<?php 
$myLinks = array("http://www.my-site.ie", 
    "http://www.my-site.eu", 
    "http://www.my-site.de", 
    "http://www.my-site.it", 
    "http://www.my-site.uk"); 

$randomRedirection = $myLinks[array_rand($myLinks)]; 
header("Location: $randomRedirection"); 
?>