htaccess - 如果网址匹配则重定向

时间:2016-11-29 18:04:38

标签: apache .htaccess redirect mod-rewrite

我需要将用户重定向到新域名,但我需要这样做,以防用户来自特定网址,他/她需要重定向到特定网址。

让我澄清......

如果用户访问http://oldexample.com/postvendita/,我需要将其重定向到http://newexample.com/assistenza

否则,对于其他每个网址http://oldexample.com/*,我需要将其重定向到http://newexample.com/new-page

我的尝试:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)postvendita(.*)$ http://www.newexample.com/assistenza [L,R=301]
RewriteCond %{HTTP_HOST} !^oldexample\.com$ [NC]
RewriteRule ^(.*)$ http://www.newexample.com/new-page [R=301,L]

如果我访问每个旧页面,我将重定向到http://www.newexample.com/new-page,因此第一条规则不起作用,我应该如何更改?

1 个答案:

答案 0 :(得分:1)

要通过.htaccess处理此问题,您希望与第一个匹配,并使用catch-all重定向其他所有内容:

RewriteEngine On

RewriteRule ^postvendita/?$ http://www.newexample.com/assistenza [R=301,L,NE]
RewriteRule .*              http://www.newexample.com/new-page   [R=301,L,NE]
  

301重定向是永久重定向,在90-99%之间传递   将汁液(排名功率)链接到重定向的页面。 301指的是   此类重定向的HTTP状态代码。在大多数情况下,301   重定向是在网站上实现重定向的最佳方法。

More About Redirects

或者,如果您不习惯编写RewriteRules,可以使用以下行:

Redirect 301 /postvendita/ http://www.newexample.com/assistenza
Redirect 301 /postvendita  http://www.newexample.com/assistenza
Redirect 301 /             http://www.newexample.com/new-page

RedirectMatch

RedirectMatch 301 /postvendita/? http://www.newexample.com/assistenza
RedirectMatch 301 .*             http://www.newexample.com/new-page

Common .htaccess Redirects