【问题标题】:Redirect URL using javascript使用 javascript 重定向 URL
【发布时间】:2017-12-19 06:49:05
【问题描述】:

是否可以使用 javascript 重定向 URL 的主机名?

如果 URL 包含“内容/文章”,则应保留在同一 URL 中。否则,它应该将所有其他 URL 从 www 重定向到 www1。

我想我得到了 "/content/articles" 部分,但 window.location.replace 似乎不起作用。

例如:

<script type="text/javascript">
	window.onload = function() {
        	if (window.location.href.indexOf("/content/articles") > -1) {
        		// Do not redirect                                
        	} else {
			// Redirect from www to www1
			window.location.replace(window.location.protocol + "//" + window.location.hostname.replace("www", "www1")+window.location.pathname);
		}
        }
</script>

【问题讨论】:

  • 你试过window.location.href.replace() 吗?
  • 做这个服务器端会更聪明。也没有必要等待窗口加载
  • @charlietfl 是的.. 但我的客户的要求是通过 javascript 来完成 :(
  • 还有另一种刷新方式@user3188291 元刷新重定向stackoverflow.com/a/5411567/713789

标签: javascript html redirect


【解决方案1】:

您可以使用window.location.href.replace()

let url = window.location.href.replace('://www','://www1')
console.log(url);

这是一个例子

<script type="text/javascript">
	window.onload = function() {
        	if (window.location.href.indexOf("/content/articles") > -1) {
        		// Do not redirect                                
        	} else {
			// Redirect from www to www1
			window.location.href = window.location.href.replace('://www','://www1');
		}
        }
</script>

replace('://www','://www1') 也很好,因为它只替换第一次出现

【讨论】:

  • 嗨。感谢您的回复。万一URL在路径名中包含www,恐怕它也会替换它。示例:www.abc.com.sg/testwww.html 将被重定向到 www1.abc.com.sg/testwww1.html。是否可以仅将其限制为主机名?
  • 但它 replace(str,str) 仅替换第一次出现
【解决方案2】:

我无法发表评论,所以我在这里发布@shalitha 的答案是正确的,替换不会有任何问题,因为替换只会替换第一个实例。如果要替换所有实例,则需要向其中添加 g (全局),这是我们不想要的。 详情-https://www.w3schools.com/jsref/jsref_replace.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 2016-06-23
    • 2020-09-07
    • 2015-07-07
    • 2013-08-20
    • 2012-10-04
    • 1970-01-01
    相关资源
    最近更新 更多