Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 在ColdFusion中,如何删除URL末尾的文本?_Facebook_Redirect_Hyperlink_Coldfusion_Cfml - Fatal编程技术网

Facebook 在ColdFusion中,如何删除URL末尾的文本?

Facebook 在ColdFusion中,如何删除URL末尾的文本?,facebook,redirect,hyperlink,coldfusion,cfml,Facebook,Redirect,Hyperlink,Coldfusion,Cfml,有时,链接会在我的网站中打开页面,页面末尾会出现奇怪的文字(比如Facebook)。我想删除该文本,因为我的页面不会显示在那里 例如,我想做的是告诉我的页面,如果URL后面有一个磅符号,请删除它并打开没有磅符号的URL 因此,如果有人打开我的页面时使用: 我希望它能更正并打开页面 我该怎么做?我知道如何使用PHP实现这一点,但我对ColdFusion是新手 谢谢! 布伦丹你在使用像AddThis.com这样的服务吗?如果是这样,这些(和其他)营销服务可能会为跟踪目的向URL添加片段。它们是无害

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

例如,我想做的是告诉我的页面,如果URL后面有一个磅符号,请删除它并打开没有磅符号的URL

因此,如果有人打开我的页面时使用: 我希望它能更正并打开页面

我该怎么做?我知道如何使用PHP实现这一点,但我对ColdFusion是新手

谢谢!
布伦丹

你在使用像AddThis.com这样的服务吗?如果是这样,这些(和其他)营销服务可能会为跟踪目的向URL添加片段。它们是无害的,但是这里有一些关于如何在使用它们的服务时删除它们的说明。(在执行此操作之前,请与您的营销团队一起检查。)

片段不会传递到ColdFusion服务器,也不在CGI范围内。它仅在客户端浏览器中可用和使用。这不会导致“ColdFusion”生成页面出现任何问题,因此您的问题可能是由javascript造成的。打开WebDeveloperTools(F12)以识别可能由意外片段引起的任何javascript错误。(您没有提供URL或错误消息,因此很难解决您可能遇到的问题。)

下面是一个关于StackOverflow的现有解决方案,您可以使用它删除客户端的片段:

我建议在pageload期间只执行一次,并且可能包括一个过滤器来保留您实际想要保留的任何片段


作为旁注,我偶尔会在没有任何匹配的
#top
元素的长页面中添加
。通常,任何找不到的id都会迫使浏览器自动滚动到顶部。

我的页面不会与它一起显示-URL中有任何附加信息都不会影响页面的显示。如果您没有使用URL变量,那么它将被忽略。你为什么要用ColdFusion来处理这个问题?尽管ColdFusion可以满足您的要求,但它并不是为此而设计的。一个web服务器是。如果您真的想修改URL,那么您应该使用web服务器进行修改。但你会让自己陷入维护的噩梦。用户可以在浏览器地址栏中键入他们想要的任何内容。你会继续制定重写规则吗?一般来说,如果你能用php做点什么,就把代码转换成对is所做事情的描述。然后用ColdFusion寻找实现它的方法。在这种情况下,听Miguel说,
(称为片段)后面的内容不是HTTP请求的一部分,因此不会提交给服务器。您只能通过Javascript在客户端处理片段:
window.location.hash
// 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));
}