.htaccess重定向除非某些域需要帮助才允许搜索引擎,而不是像其他访问者一样重定向

时间:2013-10-11 19:02:34

标签: regex apache .htaccess mod-rewrite referer

对于.htaccess大师,我有一个棘手的问题!

我有一个网站即mysite.co.uk,但我不希望人们能够直接进入mysite.co.uk的主页,而是将其重定向到enter.mysite.co.uk一个mysite的子域。 co.uk。

目前我有这个:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://mysite.co.uk [NC]
RewriteCond %{HTTP_REFERER} !^http://enter.mysite.co.uk [NC]
RewriteRule ^ http://enter.mysite.co.uk [L,R]
RewriteRule ^(.*)$ proxy.php?url=$1 [L,QSA]  

这就是我想要它,但问题是重定向是转向谷歌机器人和所有其他搜索引擎,所以我的问题是,这是我可以添加任何代码,以允许一些较大的搜索引擎机器人/蜘蛛进入而不必来自推荐网址,即enter.mysite.co.uk

帮助我非常感激,我现在​​把头发拉出来,差点秃顶:)

1 个答案:

答案 0 :(得分:0)

为搜索漫游器添加负面条件,如下所示:

RewriteCond %{HTTP_USER_AGENT} !(googlebot|adsbot-google|bingbot|msnbot|psbot|gigabot|twitterbot|linkedinbot|yahoo-mmcrawler|pingdom\.com_bot) [NC]
RewriteCond %{HTTP_REFERER} !^http://mysite.co.uk [NC]
RewriteCond %{HTTP_REFERER} !^http://enter.mysite.co.uk [NC]
RewriteRule ^ http://enter.mysite.co.uk [L,R]

RewriteRule ^(.*)$ proxy.php?url=$1 [L,QSA]

这样,您的第一条规则将不适用于列出的搜索机器人。