【问题标题】:How do I create a rewrite rule only for certain requesting domains如何仅为某些请求域创建重写规则
【发布时间】:2015-05-17 00:20:13
【问题描述】:
我在我的 HTACCESS 文件中使用了一个重写规则,它将所有图像定向到一个 PHP 文件。
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php
此 HTACCESS 文件位于我用作其他域的 CDN 的域上。我只希望在外部域请求图像时应用该规则。
如何指定执行此操作的重写条件?
谢谢
【问题讨论】:
标签:
php
apache
.htaccess
mod-rewrite
url-rewriting
【解决方案1】:
我只希望在外部域请求图像时应用该规则。
您希望在 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
【解决方案2】:
试试这个
RewriteCond %{HTTP_HOST} !^*.?yourdomain.com$
RewriteRule \.(?:jpe?g|gif|png)$ adaptive-images.php