public_html根目录设.htaccess密码后子域名访问及脚本恢复问题
解决你的两个.htaccess与文件覆盖问题
问题1:根目录设.htaccess密码保护后,如何访问子域名
当你给public_html根目录加了密码保护,默认会继承到所有子目录——而子域名通常就是指向public_html下的某个子目录(比如sub.example.com对应public_html/sub),所以访问子域名时会弹出密码框。解决办法很简单:
在子域名对应的子目录里新建/编辑.htaccess文件,添加以下内容来取消密码保护的继承:
AuthType None Require all granted
保存后,访问子域名就不会再要求输入密码了。注意要确保这个子目录的.htaccess权限设置为644,避免服务器权限问题。
问题2:恢复被WordPress覆盖的脚本index文件+避免后续冲突
首先,既然你有备份的index文件,直接把备份的文件放回原来的位置(也就是public_html根目录,因为之前脚本的index在这里)就行。放回后记得测试脚本是否能正常访问,同时检查根目录的.htaccess密码保护规则是否还生效。
接下来要避免以后安装WordPress时再出现覆盖问题,给你两个实用方案:
方案1:把WordPress装在子目录
不要把WordPress直接装在public_html根目录,而是建一个子目录(比如public_html/blog),把WordPress安装到这里。这样它的index.php会在blog目录里,完全不会影响根目录的脚本文件。如果需要通过example.com访问WordPress,还可以通过修改WordPress的站点地址和根目录的.htaccess来实现伪根目录访问,不过这个是可选的。
方案2:如果一定要装在根目录,提前做防护
- 安装WordPress前,先把根目录里脚本的
index.php(或index.html)重命名,比如改成script-index.php。 - 安装完成后,把WordPress的
index.php保留,然后在根目录的.htaccess里添加路由规则,让脚本的访问路径指向你重命名的文件,比如:
# 优先处理脚本的访问请求 RewriteRule ^script/(.*)$ /script-index.php?$1 [L] # 剩下的请求交给WordPress处理 RewriteRule ^$ /index.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
这样用户访问example.com/script时会跳转到你的脚本,其他路径则正常访问WordPress,两者互不干扰。
内容的提问来源于stack exchange,提问作者Ianchot
相关产品推荐
相关产品推荐

