在Mod_rewrite中“如果” - “Else”

时间:2012-08-10 01:18:34

标签: mod-rewrite

我一直在搜索和测试3个小时但没有运气。希望你能帮助我。

这是我的代码:

AddHandler php-legacy .php

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://www\.google\.com [NC]
RewriteRule http://www.domain1.com [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
Options +FollowSymLinks 
RewriteEngine on
RewriteRule ^$ http://www.domain2.com/ [R=301,L]
RewriteCond %{HTTP_HOST} .*
RewriteRule ^(.+)$ http://$1.domain2.com/ [R=301,L]
</IfModule>

第二个mod_rewrite工作并且已经工作了几个月,但是现在我想首先查看是否有人正在访问Google。如果是这样,我想将它们推送到不同的域。但是(第1个)推荐人部分没有。如何检查推荐人并在“我执行第二部分之前”对其进行操作?

第二个问题。我认为你不能再这样了,但有没有办法告诉某人是来自Google Adwords链接还是有机搜索链接?我认为谷歌已经让这变得不可能了。

1 个答案:

答案 0 :(得分:1)

您的RewriteRule中出现错误,看起来您错过了正则表达式匹配。

RewriteRule http://www.domain1.com [R=301,L]

要让阿帕思想:

  • 如果URI为http://www.domain1.com
  • 将其重写为[R=301,L]

你可能想要这个:

RewriteRule ^(.*)$ http://www.domain1.com/$1 [R=301,L]