当用户访问基本域 http://www.domain.com/ 或 http://domain.com/ 时, 该页面必须重定向到 http://www.domain.com/#!/news.html
我的意思是这样的:
if (window.location.href("http://www.domain.com/") || window.location.href("http://domain.com/")) {
window.location.replace("http://domain.com/#!/news.html");
}
这不起作用。特别是,页面提供在两个不同的域上 任何想法如何在漂亮的Javascript或jQuery(使用jQuery 1.4.2)中解决它?
答案 0 :(得分:4)
var loc = window.location.href;
if(loc == 'http://domain.com' || loc == 'http://www.domain.com') {
window.location.href = 'http://domain.com/#!/news.html';
}
修改:
var d = window.location.hostname;
var loc = window.location.href;
if(loc == d) {
window.location.href = d +'/#!/news.html';
}
document.domain
真的挽救了我的生命来回答你的问题,我试图用正则表达式回答你的问题,我的模式无法与现有的可能性相匹配。
好像我真的需要回去学习正则表达式:)
修改:
var d = window.location.hostname;
答案 1 :(得分:3)
使用location
上的已解析网址属性,例如pathname
,hostname
,search
和hash
,而不是试图弄乱{{1} }}:
href
特别是,该页面在两个不同的域上提供。
SEO最好只将您的网站放在一个特定的主机名上,并将任何其他关联的主机名重定向到该规范主机名。让HTTPD配置担心域而不是您的应用。例如,如果您选择if (location.pathname==='/' && location.hash==='')
location.hash= '#!/news.html';
作为规范主机名,则可以在Apache配置中说:
www.domain.com
其他Web服务器有不同的方法来设置重定向。如果您无法访问Apache配置,并且您只能使用<VirtualHost *:80>
ServerName www.domain.com
DocumentRoot ...
... other settings for the main site ...
</VirtualHost>
<VirtualHost *:80>
ServerName domain.com
ServerAlias someotherdomain.org
ServerAlias www.someotherdomain.org
Redirect permanent / http://www.domain.com/
</VirtualHost>
(ugh),那么您必须使用.htaccess
根据主机名进行条件重定向。