使用document.url.match重定向

时间:2011-12-11 02:04:08

标签: javascript url dom string-matching

我的目标是将我的网站重定向到(/2012/index.php)

仅在用户前往(http://www.neonblackmag.com

ELSE IF

用户转到(http://neonblackmag.com.s73231.gridserver.com)他们不会被重定向...(这样我仍然可以在我的网站上工作并从这个网址查看它(临时网址)

我已经尝试了以下脚本和变体,到目前为止,我没有成功地将其付诸实施....

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

3 个答案:

答案 0 :(得分:1)

document.url似乎不具备可设定性。您可能需要window.location

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

(不要使用language="javascript"。已弃用。)

答案 1 :(得分:1)

这应该有效:

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

你应该使用正则表达式作为匹配的参数(如果你没有使用https,你可以删除匹配的http:// ...

在您的解决方案中,应删除if之后的分号 - 我认为就是这样,我的是使用location.href代替document.URL

您还可以使用location.href.match(/www.neonblackmag.com\/subfolder/)等匹配子文件夹

干杯

-G。

答案 2 :(得分: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,或仅限于任何其他变量因素,并且没有人可以进入。如果您不喜欢该请求,请将它们发送到其他地方,而不是将它们提供给页面。 / p>

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

还有很多其他方法可以做到,但这是更简单的方法之一。其他包括,重定向整个域,或创建测试子域,只允许请求。