.htaccess拒绝来自外部请求的访问权限

时间:2014-01-30 10:52:47

标签: php .htaccess

我想限制网站中某些网页的访问权限。我在PHP中有一些BL页面,我想限制他们只访问内部访问。

我的意思是,如果用户在浏览器中输入这些页面,我希望这些页面被拒绝,但如果另一个PHP页面将调用它们(使用POST或GET请求),则可以访问这些页面。

是否可以在.htaccess文件中执行此操作? 如果是,怎么样?

2 个答案:

答案 0 :(得分:0)

只是澄清一下,php页面不是发送POST或GET请求的页面,它是浏览器,这意味着你无法通过IP阻止。所以你需要在这里检查引用者。问题是引用可以很容易伪造,所以这不能保证你会拒绝访问。

您可以使用mod_rewrite中的%{HTTP_REFERER}变量检查引用者,然后使用F标志拒绝访问:

RewriteEngine On
# if the request's referer isn't from a php page on your site
RewriteCond %{HTTP_REFERER} !^https?://your-domain.com/.*\.php
# deny access to the list of php files
RewriteRule ^(path/to/protected.php|path/another_protected.php|images/protected.png)$ - [L,F]

答案 1 :(得分:-1)

您可以通过用户代理进行限制..但这不是更好的方法......

 RewriteCond %{HTTP_USER_AGENT}  (Chrome|Firefox|Webkit)
 RewriteRule .* - 

如果您知道请求来自哪里,只需添加

Order allow deny
Allow from xx.xx.xxx.xx/xx
deny from all

对不起那个可怜的英语