2011-12-11 51 views
0

我的目標是我的網站重定向到(/2012/index.php)重新直接與document.url.match

只有當用戶進入(http://www.neonblackmag.com

ELSE IF

用戶去(http://neonblackmag.com.s73231.gridserver.com)他們不會被重新定向...(這樣我仍然可以在我的網站工作,並從這個網址查看它(臨時url)

我已經嘗試過下面的腳本和變化,我一直沒有成功,迄今爲止工作。 ...

<script language="javascript"> 
if (document.URL.match("http://www.neonblackmag.com/")); { 
location.replace("http://www.neonblackmag.com/2012"); } 
</script> 

回答

1

這應該工作:

<script type="text/javascript"> 
    if(location.href.match(/www.neonblackmag.com/)){ 
     location.replace("http://www.neonblackmag.com/2012"); 
    } 
</script> 

您應該使用正則表達式作爲匹配的參數(如果您'不使用https你可以下降匹配http:// ...

在你的解決方案中,if之後的分號應該是remov編輯 - 我認爲就是這樣,我使用location.href而不是document.URL

您也可以使用location.href.match(/www.neonblackmag.com\/subfolder/)

乾杯

G.

+0

感謝您的快速響應! - 我嘗試了一條警報,並沒有拋出警報。 –

+0

+0

我剛剛檢查了我的域名,並且我收到了FF 8.0中的警告消息, IE 8.0,您可以嘗試通過將/www.neonblackmag.com/更改爲/www..neonblackmag\.com/ --- --- UPDATE更改:域名設置爲neonblackmag.com而不是www.neonblackmag.com所以這是一個web配置,它將www重定向到非www,匹配不起作用,我現在看到btw提示:) –

1

document.url似乎不可設置,afaict。你可能想window.location

<script type="text/javascript"> 
if (window.location.hostname === "www.neonblackmag.com") { 
    window.location.pathname = '/2012'; 
} 
</script> 

(不要使用language="javascript"它棄用。)

+2

此代碼是正確的,比「匹配」更好的解決方案。但是最初的主要問題是'if'語句之後的''',這導致它被視爲空語句,並且'location.replace'總是被調用而不管條件如何。 –

+0

我試過了,當我轉到時我仍然得到相同的結果:http://neonblackmag.com.s73231.gridserver.com ... –

0

任何人在任何時候可以禁用JavaScript和繼續瀏覽您的網站匹配的子文件夾。有更好的方法來做到這一點,主要是在服務器端。

要直接回答你的問題,這段代碼將做你想做的事。這是一個fiddle

var the_url = window.location.href; 
document.write(the_url); 

// This is our pretend URL 
// Remove this next line in production 
var the_url = 'http://www.neonblackmag.com/'; 

if (the_url.indexOf('http://www.neonblackmag.com/') !== -1) 
    window.location.href = 'http://www.neonblackmag.com/2012/index.php'; 
else 
    alert('Welcome'); 

正如我所說,這可以很容易地被繞過。阻止可以查看電子郵件並進行基本Google搜索的人就足夠了。


在服務器端是你真正擁有權力的地方。在您的PHP代碼中,您可以將請求限制爲僅來自您的IP,或者僅限於任何其他變量因素,並且沒有人可以進入。如果您不喜歡該請求,請將它們發送到其他地方,而不是將它們提供給頁面。

header('Location: /2012/index.php'); // PHP code for a redirect 

還有很多其他方法可以做到這一點,但這是一個更簡單的方法。其他包括,重定向整個域,或創建一個測試子域,只允許請求。

+0

雖然我覺得這是正確的方法爲JavaScript,它仍然重定向時,我跳轉:http://neonblackmag.com.s73231.gridserver.com: - 這只是我的服務器的臨時網址http:// neonblackmag .com ...也許我只是不能做我想做的事.... –