htaccess: запретить прямой доступ, кроме определенного домена

#php #apache #.htaccess #mod-rewrite

#php #apache #.htaccess #модификация-перезапись

Вопрос:

 http://example.com/upload/aaa.jpg to
http://example.com/asset/example.com/aaa.jpg
  

~~

 RewriteCond %{HTTP_HOST} ^(?:www.)?(. )$
RewriteRule ^upload/(.*)$ asset/%1/$1 [L]
  

это работает, но я хочу разрешить только ppl в example.com прямой доступ к

http://example.com/asset/example.com/aaa.jpg

 eg: http://aa.com only can access 
http://aa.com/asset/example.com/xxxx.jpg
  

как я могу это сделать?

 Options  FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /asset/sss.ssss.com/

RewriteCond %{HTTP_HOST} !^sss.ssss.com$ [NC]
RewriteRule ^ - [F]
  

вот мое решение

Комментарии:

1. так вы не хотите, чтобы люди видели это на вашей веб-странице?

2. я боюсь, что люди пойдут по этому пути. я должен запретить ppl для этого

3. нет, если вы хотите отобразить изображение на своей веб-странице, вы не можете скрыть путь

4. то есть, когда я должен показать это изображение пути, я должен разрешить ppl доступ к нему? я использую RewriteRule для получения изображения этого пути, поэтому я хочу запретить ppl прямой доступ к этому пути

5. да, потому что, когда вы отображаете изображение в браузере, браузер сначала загружает изображение с сервера, а затем оно отображается на веб-странице. итак, если вы хотите ограничить доступ от пользователей, вам также нужно ограничить его из вашего браузера. Следовательно, браузер не сможет отобразить ваше изображение. Всякий раз, когда изображение отображается в браузере, это изображение должно быть доступно всем пользователям. Никто в мире не может скрыть коды или изображения на стороне клиента.