2014-02-14 55 views
1

除去最后的“/”字符我有,我将无法上应用htaccess的,特别是这个网址的情况:从包括hashtag网址

www.site.com/#hash

触发一个重要js函数。

一些引荐流发送到www.site.com/#hash/ < - 注意尾随斜线

我需要一个快速解决办法(PHP将是我的第一选择,而JS第二),其将从URL中删除任何最后的'/',同时保留任何类型的散列(例如,/#hash1,#hash2,#otherhash等)不变。

我已经尝试了几十件事,到目前为止我还没有找到一个好的方法来定位/修改/删除只有'/',没有别的。

例如,我敢肯定,这可能是工作:

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

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

而且,与JS,例如伪代码:

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

在这种情况下,我无法弄清楚如何结束对象只可能“/”。

回答

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); 
} 
+0

,做了差离开哈希完好的工作 – Paulpro

+0

@Paulpro这似乎并不是一个要求但是无论如何都要更新。 –

+0

散列和网址操作总是踢我的屁股,所以谢谢你救我。 – user2777052

0

尝试使用String.prototype.replace做一个正则表达式替换:

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