我在这里打了一场必输的仗。我有一个容易拼写错误的域名。所以我购买了拼写错误的域名。现在,我需要设置拼写错误的域名,将所有内容重定向到拼写正确的域名,但我需要保留子域名。
例如: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 年的事情了。