javascript - 我可以在不重定向的情况下重写 URL 吗?

标签 javascript url .htaccess

所以我从this handy guide中学到了如何使用 .htaccess 将漂亮的 URI(例如 foobar.com/baz)重定向到可能位于 foobar.com/bazheader345.php?user=baz 的特定内容

如果我想做相反的事情怎么办?我的 anchor 是静态的,但我在不同的文件中有很多内容——而且它们都没有特别漂亮的名字。假设我在 foobar.com 上有一个名为 123.html 的页面,并且希望地址栏保持 http://foobar.com < em>尽管用户在文件之间导航。

这可以通过更改 .htaccess 来完成吗?还是简单的 Javascript?

如果可能,它会干扰浏览器的历史状态吗?

最佳答案

使用 HTML frames 很容易做到这一点.假设您的主页是 http://example.com/index.html。将 index.html 保存为 home.html 并在 index.html 中保存如下内容:

<html>
  <head>
    <title>Website title</title>
  </head>
  <body>
    <iframe src="home.html" width="100%" height="100%" frameborder="0" scrolling="no" />
  </body>
</html>

如果您不想重命名您的原始主页,您可以改为粘贴 DirectoryIndex directive在您的 .htaccess 文件中。只需将上面的代码保存在 frame.html 中,将 home.html 更改为索引所在的任何文件名,然后添加:

DirectoryIndex frame.html

到您的 .htaccess 文件。

但是,您应该知道,这种做法在 10 多年前就已经过时了,因为它存在内在问题。它不会破坏您的历史记录,但会破坏 deep linking (也就是说,不能添加书签或链接到主页以外的任何内容)。

更多信息:

关于javascript - 我可以在不重定向的情况下重写 URL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3664876/

相关文章:

jquery - Internet Explorer 中的 History.js 哈希回退和 PushState 问题

iis - IIS6 中是否有基于文件的等同于 .htaccess 的文件? (不是配置/插件)

javascript - chrome任务管理器内存占用解读

javascript - 如何断言传递给类构造函数的函数是通过引用传递的,并且在使用组合时不会重复?

javascript - 根据滚动位置触发视频自动播放

regex - htaccess RewriteCond 问题

.htaccess: "redirect permanent",回退到 "RewriteRule"

javascript - 使用 jQuery formwizard 重新加入分支?

c++ - Qt or general c++ 如何在c++中获取或检测<a href ="file.html">的主机

php - "qptform.php?operation=add&clearform=1&displayform=1&datasheetoff=1"一般是什么样的 URL?