将 http://support.domane.com 重定向至 http://support.domain.com

将 http://support.domane.com 重定向至 http://support.domain.com

我在这里打了一场必输的仗。我有一个容易拼写错误的域名。所以我购买了拼写错误的域名。现在,我需要设置拼写错误的域名,将所有内容重定向到拼写正确的域名,但我需要保留子域名。

例如:support.domane.com 应重定向到 support.domain.com submit.domane.com 应重定向到 submit.domain.com

我已经为我的域名设置了十几个子域名,并且预计未来还会设置更多子域名。我真的不想在多个域名之间多次输入它们。

我真的很想有一个带链接的登录页面,以防重定向不起作用。比如“更新您的书签!!1!”页面。所以,如果解决方案涉及 php 或 javascript,我也会全力以赴。

任何建议将不胜感激。

提前致谢,

批评家

tl;dr 我需要重定向域名但保持子域名完整。 http://sub.domane.com->http://sub.domain.com其中 sub 是一个变量,并且在两个 URL 上必须相同。

答案1

这可能会有帮助:

https://stackoverflow.com/questions/79764/wildcard-subdomains

您需要的是以下通配符 DNS A 记录条目:

*.misspelled.com

指向您的网络服务器。

在 Web 服务器上,您需要一个重写引擎来纠正拼写错误并提供 301 重定向到 subdomain.correct.com。具体怎么做取决于您在服务器端运行的内容,但 Apache Rewrite 规则很常见。

我不知道还有什么方法可以提供链接 - 哪种浏览器不支持重定向?也许如果您使用 PHP 或类似程序,您可以发送重定向响应标头和带有链接的页面?不确定这是否可行。- 示例:http://www.webconfs.com/how-to-redirect-a-webpage.php

答案2

(假设 apache 是 Web 服务器。)

使用以下方式创建默认 VHOST

RewriteRule ^/(.*)$ /foo.php [L]

foo.php一些类似的事情(我不懂 php 所以有伪代码):

$server_name = $_SERVER["SERVER_NAME"];

if ($server_name does-not-match "*.subdomane.com") {
  header("HTTP/1.0 404 Not Found");
  exit;
}

$server_name = replace('subdomane.com', 'subdomain.com');

header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $server_name . $_SERVER["REQUEST_URI"]);

exit;

以防重定向不起作用

301/302 重定向有效,并且已经起作用很长时间了。

如果你坚持的话,你可以返回一个包含指向非错误域名的链接的页面,然后使用meta http-equiv="refresh"或 javascript 重新加载,但那是 1996 年的事情了。

相关内容