You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache虚拟主机自定义.htaccess重写URL出现404错误求助

解决Apache2虚拟主机URL重写404问题

1. 启用mod_rewrite模块

Apache默认可能未开启rewrite模块,先执行以下命令启用并重启服务:

sudo a2enmod rewrite
sudo systemctl restart apache2

2. 修改虚拟主机配置,允许.htaccess生效

你的虚拟主机配置缺少目录权限设置,导致.htaccess文件被Apache忽略。修改虚拟主机配置文件(通常路径为/etc/apache2/sites-available/pcts.local.conf),添加<Directory>权限段:

<VirtualHost *:80>
        ServerName pcts.local
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/repos/pcts

        # 添加目录权限配置
        <Directory /var/www/repos/pcts>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

修改完成后重启Apache服务:

sudo systemctl restart apache2

3. 检查.htaccess文件权限

确保.htaccess文件的所有者和权限符合Apache读取要求:

sudo chown www-data:www-data /var/www/repos/pcts/.htaccess
sudo chmod 644 /var/www/repos/pcts/.htaccess

4. 验证重写规则(可选)

如果问题仍存在,可以临时修改.htaccess的RewriteRule,添加[R=302,L]参数测试是否触发重定向:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1.php [NC,R=302,L]

访问http://pcts.local/contact如果跳转到contact.php,说明规则逻辑正常,再改回原规则去掉R=302即可。

内容的提问来源于stack exchange,提问作者Cobain Ambrose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:20:27