之后删除所有单词后重定向到主URL? (问号)

时间:2011-10-07 19:09:39

标签: php javascript redirect

我想将访问者重定向到主网址,如果他们通过这样的网址http://domain.com?abc_3828832

我希望来自该网址的访问者重定向到http://mydomain.com

4 个答案:

答案 0 :(得分:1)

您可以尝试(使用JavaScript):

if (window.location.toString().indexOf('?') > -1) {
    window.location = 'http://mydomain.com';
}

您也可以尝试:

if (window.location.search) {
    window.location = 'http://mydomain.com';
}

答案 1 :(得分:1)

爆炸(Damien的解决方案)是真正使用的方式。但是,如果您最终需要一些曲折,我建议您查看parse_url,它允许您将提供的URL细分为路径,查询,片段和其他段。

答案 2 :(得分:0)

与David相同,但支持任何协议,并将返回当前主机。这稍微可以重复使用。 Nicholas Zakas建议直接使用location对象而不是窗口,因为它可以直接访问属性。

if (location.search) {
   location.href = location.protocol + '//' + location.hostname;
}

答案 3 :(得分:0)

这是一个简单的JavaScript解决方案,它只删除查询字符串并重定向用户:

if (window.location.search) {
    window.location = window.location.split("?")[0];
}

但是,使用此解决方案,用户将加载页面,JavaScript将运行,然后页面将再次加载,这可能会惹恼用户并导致不必要的HTTP请求。

就个人而言,我会使用服务器配置设置,例如Apache的RewriteEngine:

RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^/?\?.*$    /    [R=301,L] # (Not tested, but should work)

最后,如果您无法访问服务器的配置(甚至是.htaccess),那么您也可以使用像PHP这样的服务器端脚本语言:

<?php
if (strlen($_SERVER['QUERY_STRING']) > 0) {
    header("Location: /");
}
?>