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

Mod rewrite 更改地址栏中的URL,但保持在同一页面上,mod-rewrite,redirect,url-rewriting,Mod Rewrite,Redirect,Url Rewriting,是否可以重写url,使页面保持不变,并且更改url本身 例如: 我在www.example.com/sales上有一个页面 我希望此url在地址栏中显示为www.example.com/sales_和_ 我没有试图将www.example.com/sales上的一个页面重定向到www.example.com/sales上的另一个页面,并且修复…只有一个页面-它只是我试图更改的URL,因此如果有人键入www.example.com/sales,他们将转到该页面,但地址栏中的URL将更改为显示为ww

是否可以重写url,使页面保持不变,并且更改url本身

例如:

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

我希望此url在地址栏中显示为www.example.com/sales_和_

我没有试图将www.example.com/sales上的一个页面重定向到www.example.com/sales上的另一个页面,并且修复…只有一个页面-它只是我试图更改的URL,因此如果有人键入www.example.com/sales,他们将转到该页面,但地址栏中的URL将更改为显示为www.example.com/sales_和_

重写规则是否可以实现这一点?我查到的任何内容都表明你必须重定向到第二个页面-但这不是我想做的-我只想更改实际的URL


请提供任何建议???

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

location.hash = 'newurl';
但这将为url添加一个锚。 html5的一些早期功能可以做到这一点,但尚未得到真正的支持:

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

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

location.hash = 'newurl';
但这将为url添加一个锚。 html5的一些早期功能可以做到这一点,但尚未得到真正的支持:

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

如果要将www.example.com/sales_和_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]
此方法允许您在两个URL后面只有一个文件


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

如果要将www.example.com/sales\u重定向到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]
此方法允许您在两个URL后面只有一个文件

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