我想在htaccess中进行一些重定向。我将详细解释我正在尝试做什么,最后我会告诉你我的问题,所以如果你不想要很多解释就向下滚动。
因此,为了让您了解我在做什么,这里有一个示例:如果我输入 www.mysite.com/oldpage ,它应该将我重定向到 www.mysite.com/new页的。为此我用过:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301]
Redirect /oldpages http://www.mysite.com/newpages
问题是我想将它用于多个页面。所以我想要那个:
mysite.com/oldpage/firstarticle
重定向到
mysite.com/newpage/firstarticle
所有文章都一样。我想重定向所有:
Redirect /oldpages http://www.mysite.com/newpages
Redirect /oldpages/firstarticle http://www.mysite.com/newpage/firstarticle
Redirect /oldpages/secondarticle http://www.mysite.com/newpage/secondarticle
但我有冲突,因为 Redirect / oldpage 适用于每个案例。
这就是为什么(在这里我不做什么!!!)我需要使用一般规则,如:
Redirect /oldpage/(*) http://mysite.com/newpage/(*)
Redirect /oldpage/(any numeric characters-don't need them)/(*) http://mysite.com/NEWSINGLEPAGE/(*)
而不是(*)它应该是任何字符,但在新链接中使用它们。
有人知道如何为多个页面制作此重定向吗?
感谢您的时间!
!!!! 我不知道它是否可能但是如果我可以在HTACCESS中使用IF声明那么它会很糟糕......有点像:
if (adress is /redirect) Redirect to newpage.html;
else if (adress is /redirect/(some number)/(.*)) Redirect to NEWSINGLEPAGE/$1.html
else if (adress is /redirect/(.*)) Redirect to newpage/$1.html
答案 0 :(得分:1)
更改
Redirect /oldpage/(*) http://mysite.com/newpage/(*)
要
RedirectMatch /oldpage/(*) http://mysite.com/newpage/$1
答案 1 :(得分:0)
试试这个
RewriteRule ^oldpage/(.*)$ /newpage/$1 [R=301,L]