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

Drupal本地登录页面无法访问求助(Apache 404错误)

解决Drupal本地环境/user页面404的问题

嗨,刚接触Drupal的时候我也踩过类似的坑,结合你的情况(首页正常、mod_rewrite已启用),给你几个具体的排查和解决步骤:

1. 修正.htaccess的RewriteBase配置

Drupal的URL重写完全依赖根目录下的.htaccess文件,本地项目的子路径(/drupal/myproject/)很可能导致默认的RewriteBase不匹配:

  • 打开项目根目录的.htaccess文件,找到# RewriteBase /这一行,去掉注释,改成你的本地路径:
    RewriteBase /drupal/myproject/
    
  • 同时要确保Apache允许读取.htaccess的配置:检查httpd.conf或虚拟主机配置文件中,对应项目目录的AllowOverride设置为All:
    <Directory "/your/local/path/drupal/myproject">
        AllowOverride All
        Require all granted
    </Directory>
    
  • 修改完成后重启Apache服务,让配置生效。

2. 配置Drupal的基础URL

本地环境中Drupal可能无法自动识别正确的站点URL,导致跳转或路径错误:

  • 方法一:使用Drush命令(如果本地安装了Drush)
    在项目根目录运行:
    drush config-set system.site url http://127.0.0.1/drupal/myproject
    drush cr  # 清除缓存
    
  • 方法二:手动修改settings.php
    打开sites/default/settings.php,添加一行:
    $base_url = 'http://127.0.0.1/drupal/myproject';  // 不要加末尾的斜杠
    
  • 方法三:直接修改数据库
    进入本地数据库,找到config表,查询name = 'system.site'的记录,将value字段中的url值修改为http://127.0.0.1/drupal/myproject。

3. 检查虚拟主机配置(可选)

如果习惯用自定义域名访问本地项目,配置虚拟主机能避免子路径带来的问题:

  • 在Apache的httpd-vhosts.conf中添加:
    <VirtualHost *:80>
        ServerName mysite.local
        DocumentRoot "/your/local/path/drupal/myproject"
        <Directory "/your/local/path/drupal/myproject">
            RewriteEngine On
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
  • 在本地hosts文件中添加:127.0.0.1 mysite.local
  • 重启Apache后,用mysite.local/?q=user访问,大概率能解决路径问题。

4. 强制清除Drupal缓存

有时候配置修改后,旧缓存会导致问题依然存在:

  • 手动删除sites/default/files/cache目录下的所有文件;
  • 或者用Drush命令drush cr一键清除所有缓存。

按照上面的步骤来,应该就能解决本地/user页面的404问题了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:01:05