本地主机Mod_rewrite配置问题:自定义.local域名无法加载页面
解决.local子域名映射到本地项目目录的问题
第一步:修复/etc/hosts解析问题
你当前仅在hosts中配置了dev.local,但访问project1.local或project1.dev.local时,系统无法解析这两个域名,这是页面无法访问的核心原因之一。编辑/etc/hosts,添加以下条目:
127.0.0.1 dev.local project1.local project1.dev.local
第二步:修正.htaccess重写规则
你之前的规则写法错误,RewriteRule的匹配模式针对的是URL路径,而非主机名。主机名需要通过RewriteCond %{HTTP_HOST}来判断,然后将请求内部重写到对应项目目录:
替换你现有的.htaccess内容为:
RewriteEngine On RewriteBase / # 匹配 project1.dev.local,内部重写到/project1目录 RewriteCond %{HTTP_HOST} ^project1\.dev\.local$ [NC] RewriteRule ^(.*)$ project1/$1 [L,QSA] # 匹配 project1.local,内部重写到/project1目录 RewriteCond %{HTTP_HOST} ^project1\.local$ [NC] RewriteRule ^(.*)$ project1/$1 [L,QSA]
- 规则说明:
[NC]:不区分大小写匹配主机名[L]:终止后续规则执行[QSA]:保留原请求的查询字符串(例如project1.local?foo=bar会传递到localhost/project1?foo=bar)
如果需要浏览器地址栏跳转到localhost/project1(外部重定向),可将规则中的[L,QSA]替换为[R=301,L,QSA],但本地开发通常更推荐内部重写(地址栏保持子域名不变)。
第三步:验证配置
- 保存
.htaccess和/etc/hosts文件 - 重启Apache服务
- 访问
project1.local或project1.dev.local,即可正常加载/home/user/www/project1/下的内容
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

