如何在Hostinger VPS上启用.htaccess文件使其生效?
如何在Hostinger VPS上启用.htaccess文件使其生效?
嘿,我之前帮朋友排查过Hostinger VPS上.htaccess不生效的问题,大概率是默认配置没开启相关权限,咱们一步步来解决:
第一步:检查Apache配置里的AllowOverride设置
Hostinger VPS的Apache默认可能限制了.htaccess的作用,你需要登录VPS的SSH终端,找到对应站点的配置文件:- 如果是Ubuntu/Debian系统,配置文件一般在
/etc/apache2/sites-available/目录下,比如你的域名对应的your-domain.conf; - 如果是CentOS/RHEL系统,通常在
/etc/httpd/conf.d/或者/etc/httpd/sites-available/里。
打开文件后,找到对应网站根目录的<Directory>块(比如/var/www/html),把里面的AllowOverride None改成AllowOverride All,这样才允许.htaccess覆盖Apache的全局配置。修改后的示例:
<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>- 如果是Ubuntu/Debian系统,配置文件一般在
第二步:启用mod_rewrite模块(关键!)
你用的301重定向如果依赖Rewrite规则,必须开启mod_rewrite模块:- Ubuntu/Debian系统:执行命令
sudo a2enmod rewrite; - CentOS/RHEL系统:打开
/etc/httpd/conf/httpd.conf,找到#LoadModule rewrite_module modules/mod_rewrite.so这行,去掉前面的#注释。
改完后重启Apache服务:Ubuntu用sudo systemctl restart apache2,CentOS用sudo systemctl restart httpd。
- Ubuntu/Debian系统:执行命令
第三步:检查.htaccess的权限和所有者
有时候权限不对也会导致Apache读不到文件:- 设置文件权限为644:
sudo chmod 644 /你的网站根目录/.htaccess; - 设置所有者为Apache运行用户:Ubuntu是
www-data,执行sudo chown www-data:www-data /你的网站根目录/.htaccess;CentOS是apache,执行sudo chown apache:apache /你的网站根目录/.htaccess。
- 设置文件权限为644:
第四步:测试与排查错误
先写个简单的测试规则到.htaccess里,比如:Redirect 301 /test.html /new-test.html然后访问
你的域名/test.html,看是否跳转到新地址。如果还是不行,去看Apache的错误日志找线索:- Ubuntu日志路径:
/var/log/apache2/error.log; - CentOS日志路径:
/var/log/httpd/error_log。
日志里会明确告诉你是语法错误、权限问题还是其他配置冲突。
- Ubuntu日志路径:
额外注意:如果用了Nginx反向代理
有些Hostinger VPS可能默认搭配了Nginx做反向代理,这时候还要在Nginx的站点配置里加上规则,确保请求能正确传递给Apache:location / { try_files $uri $uri/ /index.php?$args; proxy_pass http://localhost:8080; # 这里端口要和Apache实际监听的一致 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }改完Nginx配置后记得重启:
sudo systemctl restart nginx。
备注:内容来源于stack exchange,提问作者Nieri Oliveira




