Ubuntu 16.04下localhost无法访问项目目录链接(.htaccess问题)
解决Ubuntu 16.04中localhost访问项目时路径跳转异常的问题
我之前碰到过不少类似的场景,大概率是服务器配置或者页面路径解析的环节没处理到位,给你梳理几个可行的解决办法,按顺序尝试应该能搞定:
1. 配置Apache虚拟主机(推荐方案)
如果直接修改默认的DocumentRoot没效果,大概率是没正确配置虚拟主机。Ubuntu 16.04的Apache虚拟主机配置步骤如下:
- 首先创建项目的虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/myproject.conf - 写入以下配置(记得替换
/var/www/html/myproject为你的实际项目路径):<VirtualHost *:80> ServerName myproject.local DocumentRoot /var/www/html/myproject <Directory /var/www/html/myproject> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/myproject-error.log CustomLog ${APACHE_LOG_DIR}/myproject-access.log combined </VirtualHost> - 启用这个虚拟主机并重启Apache:
sudo a2ensite myproject.conf sudo systemctl restart apache2 - 修改本地
hosts文件,把自定义域名指向localhost:
添加一行:sudo nano /etc/hosts
之后你直接访问127.0.0.1 myproject.localhttp://myproject.local/home/index就会正确指向项目内的路径了。
2. 给HTML页面添加<base>标签(快速临时方案)
如果不想改服务器配置,可以在项目所有HTML页面的<head>里添加base标签,指定项目的根路径:
<head> <meta charset="UTF-8"> <title>我的项目</title> <base href="/myproject/"> <!-- 替换成你的项目在localhost下的路径,比如localhost/myproject就填/myproject/ --> </head>
这样页面内所有的超链接、表单动作都会自动基于这个base路径解析,比如<a href="/home/index">就会跳转到localhost/myproject/home/index。
3. 检查Apache模块与目录权限
- 确保
mod_rewrite模块已启用(很多框架依赖这个模块做路径解析):sudo a2enmod rewrite sudo systemctl restart apache2 - 给项目目录设置正确的权限,让Apache能读取文件:
sudo chown -R www-data:www-data /var/www/html/myproject sudo chmod -R 755 /var/www/html/myproject
4. 验证配置并清除缓存
- 用以下命令检查Apache配置是否有语法错误:
apache2ctl configtest - 清除浏览器缓存(快捷键
Ctrl+Shift+Del),避免旧的路径缓存影响测试。
内容的提问来源于stack exchange,提问作者Gustavo H. Ribeiro
相关产品推荐
相关产品推荐

