.htaccess阻止PHP Referer文件访问

时间:2013-03-06 23:05:23

标签: .htaccess

我的服务器上有一个PHP文件,我不希望任何没有正确引用的人访问它。

这是我现行的规则。

RewriteCond %{REQUEST_URI} .streamer\.php*
RewriteCond %{HTTP_REFERER} !.*domain.com.*
RewriteRule .* - [F]

此规则对mod_rewrite是否足够友好?还是需要清洁或整理一下?它确实有效,但我不是mod_rewrite的专家,我相信可能有比我的方法更好的代码。

1 个答案:

答案 0 :(得分:1)

您可以将%{REQUEST_URI}条件与规则本身结合起来,并且可以清理referer regex:

RewriteCond %{HTTP_REFERER} !^https?://[^/]+\.domain\.com/? [NC]
RewriteRule .streamer\.php - [F]

请注意,这也会阻止空白引用,就像您将链接直接复制并粘贴到浏览器的URL地址栏中一样。如果您想允许空白引用,则需要添加额外条件:

RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://[^/]+\.domain\.com/? [NC]
RewriteRule .streamer\.php - [F]