PHP-阻止来自其他域的请求

PHP-阻止来自其他域的请求,php,.htaccess,Php,.htaccess,我有一些这样的链接 http://www.domain1.com/files/domain1.com/files/def.jpg http://super.domain1.com/files/super.domain1.com/files/abc.jpg http://www.other1.com/files/other1.com/files/uhj.jpg 这些网站托管在同一托管和共享文件文件夹中。我们使用一个名为like domain name of website的子文件夹将它们分开

我有一些这样的链接

http://www.domain1.com/files/domain1.com/files/def.jpg

http://super.domain1.com/files/super.domain1.com/files/abc.jpg

http://www.other1.com/files/other1.com/files/uhj.jpg
这些网站托管在同一托管和共享文件文件夹中。我们使用一个名为like domain name of website的子文件夹将它们分开。但是,属于domain1.com的文件:

http://www.domain1.com/files/domain1.com/files/def.jpg
可以通过url访问

http://www.other1.com/files/domain1.com/files/def.jpg

如何防止这种情况?

分别为每个域配置vhost to domain文件夹

下面是vhost配置的示例

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName www.domain1.com

        DocumentRoot /home/domains/files/super.domain1.com/

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /home/domains/files/super.domain1.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

</VirtualHost>

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName domain1.com

        DocumentRoot /home/domains/files/super.domain1.com/

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /home/domains/files/super.domain1.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

</VirtualHost>

服务器管理员webmaster@localhost
服务器名www.domain1.com
DocumentRoot/home/domains/files/super.domain1.com/
选项如下符号链接
不允许超限
选项索引跟随符号链接多视图
不允许超限
命令允许,拒绝
通融
ErrorLog/var/log/apache2/error.log
日志级别警告
CustomLog/var/log/apache2/access.log组合
服务器管理员webmaster@localhost
ServerName域名1.com
DocumentRoot/home/domains/files/super.domain1.com/
选项如下符号链接
不允许超限
选项索引跟随符号链接多视图
不允许超限
命令允许,拒绝
通融
ErrorLog/var/log/apache2/error.log
日志级别警告
CustomLog/var/log/apache2/access.log组合

您需要编写一个重写规则,检查referer,然后允许/拒绝访问实际文件。我认为这更多是一个配置/布局问题,因此应该在(不确定…)处处理,因此实际上您正在共享files文件夹,但不想共享它。看到解决方案了吗?仅将您真正想要共享的文件放在共享文件夹中,并将其他文件(即您的def.jpg)保留在域之间不共享的子文件夹中。