更改地址栏中的URL,但保持在同一页面上

时间:2012-05-29 14:37:05

标签: mod-rewrite redirect url-rewriting

是否可以重写网址以使网页保持不变并且网址本身被分配?

E.G:

我在www.example.com/sales有一个页面

我希望此网址显示在地址栏中,如www.example.com/sales_and_repairs

我不是要将www.example.com/sales上的页面重定向到www.example.com/sales_and_repairs上的另一页....只有一页 - 它只是我想要更改的网址因此,如果某人在www.example.com/sales中输入内容,他们将转到该页面,但地址栏中的网址将更改为显示为www.example.com/sales_and_repairs

重写规则可以实现吗?我查过的Anytjhing似乎暗示你必须重定向到第二页 - 但这不是我想做的 - 我只是想改变实际的URL。

有什么建议吗??

2 个答案:

答案 0 :(得分:2)

如果您想永久地将www.example.com/sales_and_repairs重定向到www.example.com/sales,您可以使用.htaccess文件进行操作。

首先,你必须在apache中启用mod_rewrite。

然后将以下内容添加到.htaccess文件中:

Options +FollowSymlinks
RewriteEngine on
Rewriterule ^http://www\.example\.com/sales_and_repairs$ http://www\.example\.com/sales [R=301,NC,L]

此方法允许您在两个网址后面只有一个文件。

但是,如果您想在用户操作后修改网址,可以使用Sparda上面给出的答案进行修改。

答案 1 :(得分:1)

似乎你可以通过javascript实现这一点:

location.hash = 'newurl';

但是这会为网址添加一个锚点。 html5的一些早期功能可以做到这一点,但尚未真正支持:

history.pushState(data, 'title', 'newurl');