我在服务器上有近20页,但我只想要一个名为abc.php的文件,用户可以观看。我想如果用户强行打开其他文件,如//example.com/some.php .htaccess显示403错误。
<Files ~ "^(?!(changepwd|login|register|remind|securitycode|registersuggest)\.php$).*(\.php)$">
AuthName "Reserved Area"
AuthType Basic
AuthUserFile path_to/.htpasswd
AuthGroupFile path_to/.htgroup
Order Deny,allow
Require group allowed_groups
</Files>
这是我目前正在使用的方式,但我认为可以有更优雅的解决方案。
答案 0 :(得分:20)
此.htaccess
- 文件只允许用户打开index.php
。尝试访问任何其他文件将导致403错误。
Order deny,allow
Deny from all
<Files "index.php">
Allow from all
</Files>
如果您还想对某些文件使用身份验证,您可以在我的示例末尾添加当前文件中的内容。
答案 1 :(得分:1)
最安全地移动您不希望用户访问不在Web服务器根目录中的目录的文件。
就像我网站的根目录是这样的:
/var/www/html/my_web_site/public/index.php
我可以将非公共文件放在另一个目录中:
/var/www/html/my_web_site/config.php
/var/www/html/my_web_site/auth.php
/var/www/html/my_web_site/db.php
并在index.php
中包含这样的文件:
include("../config.php");
include("../auth.php");
include("../db.php");
请注意,您不必冒险意外删除或忘记复制.htaccess
文件。