我有一堆 secure_xxxxxx.php 文件。有没有办法使用 .htaccess 根据 IP 阻止对所有 secure_* php 文件的访问?
编辑:我试过了,但出现了 500 个错误
<FilesMatch "^secure_.*\.php$">
order deny all
deny from all
allow from my ip here
</FilesMatch>
在 apache 错误日志中也没有看到任何错误
httpd -M
Loaded Modules:
core_module (static)
authn_file_module (static)
authn_default_module (static)
authz_host_module (static)
authz_groupfile_module (static)
authz_user_module (static)
authz_default_module (static)
auth_basic_module (static)
include_module (static)
filter_module (static)
log_config_module (static)
logio_module (static)
env_module (static)
expires_module (static)
headers_module (static)
setenvif_module (static)
version_module (static)
proxy_module (static)
proxy_connect_module (static)
proxy_ftp_module (static)
proxy_http_module (static)
proxy_scgi_module (static)
proxy_ajp_module (static)
proxy_balancer_module (static)
ssl_module (static)
mpm_prefork_module (static)
http_module (static)
mime_module (static)
dav_module (static)
status_module (static)
autoindex_module (static)
asis_module (static)
info_module (static)
suexec_module (static)
cgi_module (static)
dav_fs_module (static)
negotiation_module (static)
dir_module (static)
actions_module (static)
userdir_module (static)
alias_module (static)
rewrite_module (static)
so_module (static)
fastinclude_module (shared)
auth_passthrough_module (shared)
bwlimited_module (shared)
frontpage_module (shared)
suphp_module (shared)
Syntax OK
文件似乎运行良好。
答案1
您应该能够使用 Files 指令和 mod_authz_host 来实现您的目标。
例如:
<Files "secure_*.php">
Require 192.168.0.0/24
</Files>
请参阅下面的参考资料。
http://httpd.apache.org/docs/current/mod/core.html#files http://httpd.apache.org/docs/current/howto/access.html
或者使用 FilesMatch 和较旧的 ACL 语法:
<FilesMatch "^secure_.*\.php$">
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
这应该只允许从本地主机访问。
答案2
是的,我认为可以在 .htaccess 中使用正则表达式 http://expressionengine.com/wiki/Regular_Expressions_in_.htaccess
以及基于 IP 使用allow
和deny
选项的限制。