In evaluating a rewrite rule that redirects to a specific URL and say the rewrite condition is met, would it be possible to use HTTP_HOST as part of the URL to be redirected to?
Example in question:
RewriteRule .*\.(jpg|jpe?g|gif|png|bmp)$ http://%{HTTP_HOST}/no-leech.jpg [R,NC]
The motive behind this question is a desire to create a single htaccess file that would match against an addon domain (on a shared hosting account) and an infinite amount of subdomains below it to prevent hotlinking of images.
-
You can use
%1(and%2, etc) to access matches in precedingRewriteCondstatements:RewriteEngine On # don't redirect no-leech.jpg or we'll end up in a loop RewriteCond %{REQUEST_URI} !^/no-leech.jpg$ # match Host header and store RewriteCond %{HTTP_HOST} (.*) RewriteRule \.(jpg|jpe?g|gif|png|bmp)$ http://%1/no-leech.jpg [R,NC,L]Test:
# GET -Sd http://localhost/foo.jpg GET http://localhost/foo.jpg --> 302 Found GET http://localhost/no-leech.jpg --> 200 OKAnd with a different Host header:
# GET -SedH 'Host: foo.bar.com' http://localhost/foo.jpg GET http://localhost/foo.jpg --> 302 Found GET http://foo.bar.com/no-leech.jpg --> 200 OKFrom markdrayton
0 comments:
Post a Comment