我想限制网站中某些网页的访问权限。我在PHP中有一些BL页面,我想限制他们只访问内部访问。
我的意思是,如果用户在浏览器中输入这些页面,我希望这些页面被拒绝,但如果另一个PHP页面将调用它们(使用POST或GET请求),则可以访问这些页面。
是否可以在.htaccess文件中执行此操作? 如果是,怎么样?
答案 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
对不起那个可怜的英语