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

时间:2010-09-08 05:32:24

标签: javascript url .htaccess

所以我从this handy guide了解了如何使用.htaccess将像foobar.com/baz这样的漂亮URI重定向到可能位于foobar.com/bazheader345.php?user=baz的特定内容。

如果我想反过来怎么办?我的锚是静态的,但我在不同的文件中有很多内容 - 而且它们都没有特别漂亮的名字。假设我在foobar.com处有一个名为123.html的网页,并希望位置栏保留http://foobar.com ,尽管在用户执行的文件之间导航。

可以通过更改.htaccess来完成吗?或者只是Javascript?

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

2 个答案:

答案 0 :(得分:2)

使用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>

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

DirectoryIndex frame.html

到您的.htaccess文件。

然而,你应该知道这种做法在10年前就已经过时了,因为它存在固有的问题。它不会破坏您的历史记录,但它会中断deep linking(也就是说,不能将主页加入书签或链接到其他任何内容)。

更多信息:

答案 1 :(得分:2)

为所有其他网页创建漂亮的名称会更好,这样您就可以让用户链接书签那些其他网页....或保留丑陋的网址,不要担心。

保持相同的网址并显示不同的内容会破坏网址的整个目的,这是一个特定信息集的唯一地址。