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
相关产品推荐
相关产品推荐

