使用虚拟主机重定向,但robots.txt除外

时间:2012-08-13 17:32:27

标签: apache .htaccess redirect virtualhost

我有一个复杂的seo问题,谷歌已经从我的一个名字服务器索引了数千页。我需要重定向每个请求301除了robots.txt

这是我到目前为止所做的,但它不起作用。注释掉的部分是我最初放置的部分(有效),除了它没有考虑robots.txt。这下面的两行是我的失败尝试

<VirtualHost xx.xx.xx.xx:80>
   ServerName ns2.example.com
   #RedirectMatch permanent /(.*) http://example.new/$1
   RewriteCond %{REQUEST_URI} !^/robots\.txt [NC] 
   RewriteRule ^(.*)$ http://example.new/$1 [R=301,L]
</VirtualHost>   

有人看到我的错误吗? example.new是我想重定向到的网站

1 个答案:

答案 0 :(得分:1)

  

有人看到我的错误吗? example.new是我想重定向到的网站

对于初学者来说,看起来你需要打开重写引擎:

RewriteEngine On

  

有效,但现在除了现在将所有内容重定向为http://example.com//whatever-page,其中包含两个//

这一行:

RewriteRule ^(.*)$ http://example.new/$1 [R=301,L]

需要移除/

RewriteRule ^(.*)$ http://example.new$1 [R=301,L]

这是因为RewriteRule匹配的URI在vhost / server配置中具有前导斜杠,因此您不需要在目标中的主机名后面使用斜杠。