我在这里打败了一场失败的战斗。 我有一个容易拼错的域名。 所以我买了拼写错误。 现在,我需要设置拼写错误的域名redirect到拼写正确的域名,但我需要保持子域。
例如:support.domane.com应该redirect到support.domain.com submit.domane.com应该redirect到submit.domain.com
我已经为我的域名设置了十几个子域名,我预计未来还有很多额外的子域名。 我真的宁愿不必在多个域中多次input它们。
我真的很想有一个链接着陆页,以防万一redirect不起作用。 就像“更新你的书签!1!” 页。 所以,如果一个解决scheme涉及到PHP或JavaScript,我也完全一样。
任何build议将不胜感激。
提前致谢,
Critologist
我需要redirect域,但保持子域不变。 http://sub.domane.com – > http://sub.domain.com其中sub是一个variables,两个URL都需要相同。
这可能有助于:
https://stackoverflow.com/questions/79764/wildcard-subdomains
你想要的是一个通配DNS的logging条目:
*.misspelled.com
指向你的networking服务器。
在networking服务器上,您需要重写引擎来纠正拼写错误,并将301redirect到subdomain.correct.com。 这取决于你在服务器端运行的是什么,但Apache重写规则是常见的。
我不知道的方式,你也可以提供一个链接 – 什么样的浏览器不支持redirect? 也许如果你用PHP或类似的方式做,你可以发送一个redirect响应头和一个链接页面? 不知道这是否可以工作。 – 例子: http : //www.webconfs.com/how-to-redirect-a-webpage.php
(假设Apache是Web服务器。)
创build一个默认的VHOST
RewriteRule ^/(.*)$ /foo.php [L]
在foo.php做类似的东西(我不知道PHP所以有psuedocode):
$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;
以防万一redirect不起作用
301/302redirect工作,并已工作了很长时间。
如果你坚持,虽然你可以返回一个页面,有一个链接到非拼写错误的域名,并使用meta http-equiv="refresh"或JavaScript重新加载,但这是如此1996年。