.htaccess:用params将rewriteCond改为同一URL内的另一个页面

时间:2018-03-06 12:31:29

标签: .htaccess mod-rewrite http-host

我的.htaccess是抓取器和搜索引擎的条件,它们将它们带到了静态"他们可以抓取所有内容的页面。

到目前为止,我已经拥有了我的域 {client} .realdomain.com,其中 {client} 是一个客户的子域名。

当客户端然后在社交网络上共享某些内容时,例如facebook / linkedin他们的抓取工具被带到了我的.htaccess,它有以下条件(这有效)

网址示例:http://{client}.realdomain.com/s/token

RewriteCond %{HTTP_USER_AGENT} (LinkedInBot/[0-9]|facebookexternalhit/[0-9]|Facebot|Twitterbot|twitterbot|Pinterest|pinterest|Google.*snippet|baiduspider|rogerbot|embedly|quora\ link\ preview|showyoubot|outbrain|slackbot|vkShare|W3C_Validator)
RewriteCond %{HTTP_HOST} ^(.+?)\.realdomain\.com$
RewriteRule ^s/(.*)$ http://%1.realdomain.com/static.php?token=$1 [NC,L]

最终会以http://{client}.realdomain.com/static.php?token=token

结尾

如上所述,这里的任何事情都很完美,但现在我正在进入不同的领域,所以它可以是

{client}.real-domain.com{client}.sunset.com

我在.htaccess中基本上是一样的东西,但是当它重定向时它应该采用整个域,所以它会转到例如http://{client}.sunset.com?static.php=token=my-secret-token如果抓取工具来到{client}.sunset.com/s/my-secret-token

我将如何做到这一点?我似乎是一个简单的解决方案,但出于某种原因,我似乎无法理解它。

由于

1 个答案:

答案 0 :(得分:1)

RewriteCond %{HTTP_USER_AGENT} (LinkedInBot/[0-9]|facebookexternalhit/[0-9]|Facebot|Twitterbot|twitterbot|Pinterest|pinterest|Google.*snippet|baiduspider|rogerbot|embedly|quora\ link\ preview|showyoubot|outbrain|slackbot|vkShare|W3C_Validator)
RewriteCond %{HTTP_HOST} ^(.+?)\.%{HTTP_HOST}%\.com$
RewriteRule ^s/(.*)$ http://%1.%{HTTP_HOST}%.com/static.php?token=$1 [NC,L]

你可以测试一下吗?将您的域名替换为%{HTTP_HOST}%