.htaccess配置:访问localhost自动重定向至指定Laravel登录页
解决方案:通过.htaccess实现localhost根目录自动重定向
首先要明确:你需要编辑的是Htdocs根目录下的.htaccess文件(也就是和sofia、test1、test2文件夹同级的那个,如果没有就新建一个),而不是Laravel项目内部的.htaccess。
情况1:重定向到 https://localhost/sofia/public/login
直接在根目录的.htaccess里添加以下规则:
# 开启URL重写引擎 RewriteEngine On # 当访问localhost根目录(即请求路径为空或只有/)时,重定向到目标地址 RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^(.*)$ https://localhost/sofia/public/login [R=301,L]
R=301表示永久重定向(适合确定的长期跳转),如果只是临时测试可以改成R=302L表示这是最后一条规则,匹配后不再执行后续规则
情况2:重定向到 https://localhost/login
如果想让访问根目录直接跳转到简洁的/login,更推荐的方式是把Apache的DocumentRoot设置为Htdocs/sofia/public(这样站点根就是Laravel的public目录,符合Laravel的最佳实践)。如果暂时不想改Apache配置,也可以用.htaccess做URL重写:
RewriteEngine On # 根目录重定向到/login RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^(.*)$ https://localhost/login [R=301,L] # 把/login的请求转发到sofia/public/login RewriteRule ^login$ sofia/public/login [L]
不过这种方式可能会影响其他项目的访问(比如test1、test2),如果还要正常访问其他项目,建议优先修改Apache的站点根配置。
注意事项
- 确保Apache已经启用了
mod_rewrite模块 - 检查Apache配置文件(比如httpd.conf)里,你的Htdocs目录的
AllowOverride设置为All,这样.htaccess规则才能生效
内容的提问来源于stack exchange,提问作者RAVI BANGKIT NUR ZIKRILLAH
相关产品推荐
相关产品推荐

