2016-01-19 40 views
0

有时,链接在我的网站上打开页面,并在页面末尾显示奇怪的文本(如Facebook)。我想删除该文本,因为我的页面不会显示在那里。在ColdFusion中,如何删除网址末尾的文字?

例如,我想要做的是告诉我的网页,如果URL在磅符号后面有文本,请将其删除并在没有它的情况下打开URL。

所以,如果有人打开我的页面: http://www.example.com/news/stories/this-is-a-news-story/#sthash.MmwTdqVa.dpuf 我想改正,打开网页 http://www.example.com/news/stories/this-is-a-news-story/

我会怎么做呢?我知道如何用PHP做到这一点,但我是ColdFusion的新手。

谢谢! Brendan

+4

_my页面不会显示在那里_ - 在URL中有任何附加信息不应该影响您的页面显示。如果您没有使用URL变量,则简单地忽略它。你为什么想用ColdFusion来处理这个问题?虽然ColdFusion可以做你所要求的,但它不是为此而设计的。网络服务器是。如果你真的想修改URL,那么你应该使用你的Web服务器来这样做。但是你会把自己置于维护噩梦。用户可以在浏览器地址栏中输入任何他们想要的内容。你会继续制定重写规则吗? –

+0

一般来说,如果您可以使用php做些什么,请将代码转换为对所做事情的描述。然后寻找方法用ColdFusion完成它。我这种情况下,听米格尔。 –

+2

'#'(被调用片段)之后的内容不是HTTP请求的一部分,因此未提交给服务器。你只能通过Javascript:'window.location.hash'在客户端处理片段 – Alex

回答

0

您是否在使用像AddThis.com这样的服务?如果是这样,那么这些(和其他)营销服务可能会将URL添加到URL以用于跟踪目的。它们是无害的,但是如果您使用他们的服务,请参阅AddThis使用说明。 (检查W /你的营销团队在这之前。)

http://www.addthis.com/academy/removing-hashtags-anchors-and-tracking-codes-from-your-urls/

片段不传递给ColdFusion服务器,而不是在CGI范围。它旨在仅在客户端浏览器中可用和使用。这不应该导致与“ColdFusion”生成页面的任何问题,所以你的问题可能是由于JavaScript。打开Web Developer工具(F12)来识别可能由意外片段引起的任何javascript错误。 (您没有提供网址或错误信息,所以这是很难解决您可能会遇到的问题。)

这里有你,你可以用它来删除片段客户端在计算器上现有的解决方案:

https://stackoverflow.com/a/13824103/693068

// remove fragment as much as it can go without adding an entry in browser history: 
window.location.replace("#"); 

// slice off the remaining '#' in HTML5:  
if (typeof window.history.replaceState == 'function') { 
    history.replaceState({}, '', window.location.href.slice(0, -1)); 
} 

我只能劝一次页面加载过程中执行此,也许包括过滤器,以保护你真正想要保留的任何片段。作为一个便笺,我偶尔会将<a href="#top">Go to Top</a>添加到长页面,而没有任何匹配的#top元素。通常,任何未找到的ID都会强制浏览器自动滚动到顶部。