如何仅为某些请求域创建重写规则

How do I create a rewrite rule only for certain requesting domains

我在 HTACCESS 文件中使用重写规则,将所有图像定向到 PHP 文件。

RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php

这个 HTACCESS 文件位于我用作其他域的 CDN 的域上。我只希望在外部域请求图像时应用规则。

如何指定执行此操作的重写条件?

谢谢

试试这个

RewriteCond %{HTTP_HOST} !^*.?yourdomain.com$
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php

I only want the rule to apply when the images are requested by an external domain.

您想在 http_referer 上重写条件。试试这个:

RewriteCond %{HTTP_REFERER} !cdndomain\.com [NC]
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php

如果没有 http_referer 因为 URL 是直接在浏览器中输入的,但你想提供真实的图像,你可以使用这个:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !cdndomain\.com [NC]
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php