2010-09-08 147 views
3

所以我从this handy guide了解到如何使用.htaccess将像foobar.com/baz这样漂亮的URI重定向到可能驻留在foobar.com/bazheader345.php?user=baz的特定内容。我可以在不重定向的情况下重写URL吗?

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

这可以通过更改.htaccess?或者干脆使用Javascript?

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

回答

2

这真的很容易处理HTML frames。假设您的主页是http://example.com/index.html。保存index.htmlhome.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(也就是说,除了主页以外,不能书签或链接到其他任何东西)。

更多信息:

+0

我同意。虽然保持一致的URL或多或少是可能的,但它通常不是一个好主意。 – 2010-09-08 05:44:23

2

你会好得多创造了所有其他网页漂亮的名字,让你让你的用户链接至或书签那些其他网页....或保持丑陋的网址,不用担心。

保持相同的URL,并显示不同的内容违背了一个网址,这将是一个唯一地址为一组特定的信息的全部目的。

+0

我接受了马克特拉普的后代答案,因为它提供了一种方法来实现有关目标,但是,对于记录而言,你是对的。 – 2010-09-08 06:51:06

相关问题