cPanel中PHP包含文件权限设置及includes文件夹防Google索引方法
Hey there, totally get your concern—having those partial HTML files indexed by Google isn’t ideal at all. Let’s walk through the best solutions to fix this, starting with the most reliable ones:
1. 把Includes文件夹移到网站根目录之外(最安全的方法)
cPanel里你的网站文件一般都在public_html目录下,这是公开可访问的web根。你可以把includes文件夹直接移到public_html的同级目录(比如和它并列的位置)。这样外部用户和搜索引擎完全无法直接访问这个文件夹,因为它不在web服务器的公开路径里。
修改你的include代码为:
<?php include '../includes/footer.php';?>
这里的../表示回到上一级目录,找到includes文件夹。这个方法从根源上杜绝了被访问的可能,非常推荐。
2. 用.htaccess阻止直接访问Includes文件夹
如果不想移动文件夹,在includes文件夹里创建一个.htaccess文件,添加以下内容:
- 如果你用的是Apache 2.4及以上版本:
Require all denied
- 旧版Apache(2.2及以下):
Deny from all
这个文件会告诉服务器拒绝所有对该文件夹内文件的直接请求,但PHP的include是服务器端内部调用,完全不受影响。搜索引擎爬虫尝试访问yoursite.com/includes/footer.php时会得到403禁止访问的响应,自然不会索引这些文件。
3. 正确设置文件和文件夹权限(辅助措施)
权限设置主要是确保服务器能读取文件,同时避免不必要的访问:
includes文件夹的权限设为755:所有者可读、可写、可执行;组和其他用户可读、可执行。这样服务器能正常访问文件夹内容,外部用户无法修改。- 文件夹内的
.php和.html文件权限设为644:所有者可读、可写;组和其他用户可读。这个权限是web文件的标准设置,既能让服务器读取文件,又防止外部修改。
注意:权限设置本身不能完全阻止直接访问,需要配合上面的.htaccess或者移动文件夹的方法,它是基础安全措施。
4. 添加Noindex标签(退而求其次的方法)
如果上面的方法都暂时无法实现,你可以在nav.php和footer.php的开头添加meta标签,告诉搜索引擎不要索引这些文件:
<meta name="robots" content="noindex, nofollow">
不过这个方法是“事后补救”——如果爬虫已经找到了这些文件路径,它才会遵守这个标签,不如前面的方法从根源阻止访问可靠。
内容的提问来源于stack exchange,提问作者Gihan

