如何配置.htaccess让浏览器可直接访问指定目录下的PHP文件
解决Joomla libraries子目录PHP文件访问被拦截的问题
问题核心原因
libraries目录的.htaccess默认设置了拒绝所有访问,Apache的.htaccess规则会从父目录到子目录继承,子目录的规则需要明确覆盖父目录的拒绝策略才能生效。
解决方案一:修改schade目录的.htaccess
在libraries/schade/.htaccess中添加以下规则,明确允许指定类型文件的访问:
# 覆盖父目录的拒绝规则,允许满足任一授权条件即可访问 Satisfy Any # 允许PHP、JS、CSS文件被访问 <FilesMatch "\.(php|js|css)$"> Require all granted </FilesMatch> # 拒绝其他所有文件的访问(可选,增强安全性) <FilesMatch ".*"> Require all denied </FilesMatch>
解决方案二:直接修改libraries目录的.htaccess(备选)
如果子目录的.htaccess仍不生效,可以在libraries/.htaccess的拒绝规则之前添加针对schade目录的例外:
# 允许schade目录下的PHP、JS、CSS文件访问 <Directory "schade"> <FilesMatch "\.(php|js|css)$"> Require all granted </FilesMatch> </Directory> ## Deny access to this directory(原Joomla默认拒绝规则) <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order deny,allow Deny from all </IfModule>
验证方法
修改完成后,直接访问被拦截的PHP文件(如https://verzforms.dstnydev.nl/libraries/schade/pczoek.php),确认是否能正常访问;同时检查JS/CSS文件的访问是否不受影响。
内容的提问来源于stack exchange,提问作者TheJoomlaMaster
相关产品推荐
相关产品推荐

