首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess和散列隐藏

htaccess和散列隐藏
EN

Stack Overflow用户
提问于 2012-12-19 01:39:34
回答 1查看 487关注 0票数 2

下午好,

有没有可能在htacces重定向中添加一个规则,比如http://example.com/portfoliohttp://example.com/index.php#portfolio,同时不在浏览器的URL域中显示最后一个地址?

我知道hast无法发送到服务器,但一定有某种方法可以屏蔽这些丑陋的URL。

可能与问题相关,也可能不相关,但我有以下jQuery代码

代码语言:javascript
复制
if(history.pushState){
    history.pushState(null,null,'#'+$(this).attr('class'));
}else{
    location.hash = '#'+$(this).attr('class');}
}

if(window.location.hash){
    var hash = window.location.hash.substring(1);
    if(jQuery.browser.webkit){
        $('html,body').animate({scrollTop:$('#'+hash).offset().top-2*88},'slow');
    }else{
        $('html,body').animate({scrollTop: $('#'+hash).offset().top-3*88-10},'slow');}
    }
}

提前感谢您的任何解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-19 05:04:21

我知道hast不能发送到服务器,但肯定有某种方法可以屏蔽这些丑陋的URL。

没有。通过“向浏览器屏蔽它”,这意味着浏览器不知道它请求的URL在服务器端已经被破坏了。它认为它已经请求了http://example.com/portfolio,因此这就是它在地址栏中显示的内容。

如果你想在浏览器中隐藏#portfolio片段,那么这个片段就变得完全无用了。浏览器是客户端和服务器之间唯一可能利用此类片段的实体,但浏览器看不到它,因为服务器将其隐藏起来。对该片段没有任何用处的服务器将其对浏览器隐藏起来。您不能让浏览器加载一个不同于地址栏上显示的URL的URL,该URL没有某种形式的框架(隐藏URL)或某种javascript技巧来更改地址栏中的内容。

如果服务器在内部将/portfolio重写为/index.php#portfolio,则会立即丢弃该片段。index.php的执行并不知道它的存在,因为只有浏览器关心这个片段。

如果你不想在你的URL中有碎片,你应该重新设计你的内容是如何被传递的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13938487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档