如何使用.htaccess将用户重定向到同一站点上的新url?

如何使用.htaccess将用户重定向到同一站点上的新url?,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我最近更改了我网站的URL 旧URL:mysite.com/top/1 新URL:mysite.com/top/page=1 当用户访问旧的url时,我想将他们重定向到新的url。如何使用.htaccess执行此操作 我有这个新url的重写规则 RewriteRule ([top,new]+)/page=([0-9]+) index.php?h=$1&page=$2 [L] 试试这个 RewriteEngine On RewriteRule ^top/([0-9]+)$ top/pag

我最近更改了我网站的URL

旧URL:
mysite.com/top/1

新URL:
mysite.com/top/page=1

当用户访问旧的url时,我想将他们重定向到新的url。如何使用.htaccess执行此操作

我有这个新url的重写规则

RewriteRule ([top,new]+)/page=([0-9]+) index.php?h=$1&page=$2 [L]
试试这个

RewriteEngine On
RewriteRule ^top/([0-9]+)$ top/page=$1 [R=301,L]

对于最初的问题,您应该尝试以下方式:

RewriteRule ^top/([0-9]+)$ top/page=$1
但根据你在Virendra帖子上的评论,这可能会更好地满足你的需求:

RewriteRule ^(top|new)/([0-9]+)$ index.php?h=$1&page=$2 [R=301,L]
这将同时匹配top和new,并且仅当指定了有效的页码时才重写


希望这有帮助

您确定新的URL吗?你是说
mysite.com/top/?page=1
(在
page
之前打问号)?否,我更新了问题检查now@Virendra您的重写规则将导致无限重写:)我已经为新url设置了此重写规则
rewriterule([top,new]+)/page=([0-9]+)index.php?h=$1&page=$2[L]
是的,它将导致无限重写。让我试试别的。@RishikaSinghania您应该更新问题,以了解您想要什么。我已根据您在问题中的请求更新了解决方案,即将
mysite.com/top/1
重定向到
mysite.com/top/page=1
。但是,你确定你希望它以这种方式重定向,而不是像
mysite.com/top/?page=1
那样,这不会按照问题中的要求重定向到
mysite.com/top/page=1
。根据他对你答案的评论,他希望这种行为而不是他在问题中提出的行为,但我会编辑我的答案,将两者都包括在内solutions@RishikaSinghania您尝试了哪一个?内部服务器错误是因为标志中有空格。将其更改为
[R=301,L]
它表示“页面未正确重定向”