从hashtag url中删除最后的'/'字符

时间:2014-02-14 23:20:36

标签: javascript php

我遇到的情况是我无法应用htaccess,尤其是这个网址:

www.site.com/#hash

触发一个重要的js函数。

有些推介人正在向www.site.com/#hash/发送流量< - 请注意尾随斜杠

我需要一个快速修复解决方案(PHP将是我的第一选择,JS是第二选择),它将从URL中删除任何最终的'/',同时保留任何类型的哈希(例如,/#hash1,#hash2, #otherhash等)完好无损。

我已经尝试了几十种东西,到目前为止,我还没有找到一种很好的方法来定位/修改/删除'/'而没有别的。

例如,我很确定这可行:

$url = preg_replace('{/$}', '', $url);

...但我不知道如何将它瞄准浏览器地址栏中的实际网址。

而且,使用JS,例如,伪代码:

if (window.location.hash.CONTAINS == '/') {window.location.hash = ''}

在这种情况下,我无法弄清楚如何只在最后定位可能的'/'。

2 个答案:

答案 0 :(得分:1)

这是PHP无法解决的问题。您必须使用JavaScript。

使用String.prototype.indexOf()

if (location.hash.indexOf('/') != -1) {
    // remove the slash
    location.hash = location.hash.replace('/', '');
}

如果它需要特别是最后一个斜线:

if (location.hash.substr(-1) == '/') {
    location.hash = location.hash.slice(0, -1);
}

答案 1 :(得分:0)

尝试使用String.prototype.replace进行正则表达式替换:

window.location.hash = window.location.hash.replace(/\/$/, '');