域更改301仅将某些页面和所有其他页面单独重定向到另一个URL

时间:2013-04-26 13:23:18

标签: .htaccess http-status-code-301

我正在将域名移动到另一个域名。我需要通过htaccessm将旧域的某些特定页面重定向到新域上的某些特定页面,但是我还需要将旧域的所有其他更通用的页面重定向到新域的另一组更通用的页面。我试了这个没有运气:

Options +FollowSymLinks 
RewriteEngine on 

redirect 301 /busca/apartamento/rio http://www.newdomain.com/apartamentos/rio/resultados

RewriteRule (.*) http://www.newdomain.com/apartamentos? [R=301,L]

这不起作用,因为它将所有页面重定向到http://www.newdomain.com/apartamentos,我只需要将没有单页重定向规则的页面重定向到此URL。

1 个答案:

答案 0 :(得分:0)

这样的事情应该可以解决问题(我用“example.com”替换了“newdomain.com”):

RewriteEngine on
RewriteOptions inherit

# directives are processed top-down and halt on match (L)

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^busca\/apartamento\/rio$ "http\:\/\/www\.example\.com\/apartamentos\/rio\/resultados\/" [R=301,L]

# Redirect all other pages to http://www.example.com/apartamentos
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^(.*)$ "http\:\/\/www\.example\.com\/apartamentos\/" [R=301,L]

如果您的服务器不需要转义特殊字符,请删除反斜杠 - 我的共享主机确实如此。