1

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

这是我目前有效的规则。

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

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

4

1 回答 1

1

您可以将%{REQUEST_URI}条件与规则本身结合起来,并且可以清理引荐来源正则表达式:

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]
于 2013-03-07T02:29:42.563 回答