我的服务器上有一个 PHP 文件,我不希望没有正确引用的任何人访问它。
这是我目前有效的规则。
RewriteCond %{REQUEST_URI} .streamer\.php*
RewriteCond %{HTTP_REFERER} !.*domain.com.*
RewriteRule .* - [F]
这条规则是否足够友好mod_rewrite
?还是需要清洁或整理一下?它确实起作用,但我不是专家,mod_rewrite
我相信可能有比我的方法更好的代码。
我的服务器上有一个 PHP 文件,我不希望没有正确引用的任何人访问它。
这是我目前有效的规则。
RewriteCond %{REQUEST_URI} .streamer\.php*
RewriteCond %{HTTP_REFERER} !.*domain.com.*
RewriteRule .* - [F]
这条规则是否足够友好mod_rewrite
?还是需要清洁或整理一下?它确实起作用,但我不是专家,mod_rewrite
我相信可能有比我的方法更好的代码。
您可以将%{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]