我遇到的情况是我无法应用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 = ''}
在这种情况下,我无法弄清楚如何只在最后定位可能的'/'。
答案 0 :(得分:1)
这是PHP无法解决的问题。您必须使用JavaScript。
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(/\/$/, '');