httpd.conf修改/删除无影响?.htaccess失效及Laravel Valet环境疑问
问题根源:Laravel Valet 默认用 Nginx 而非 Apache
兄弟,你踩了个典型的「工具底层逻辑」坑——Laravel Valet 默认是基于 Nginx 运行的,根本没用到 Apache!这就是为什么你改 Apache 的 httpd.conf 甚至清空它,网站都完全不受影响,而且 .htaccess(这是 Apache 专属的配置文件)自然也不会被处理。
为啥你的操作完全无效?
- Valet 启动的是 Nginx 服务,Apache 的配置文件(包括
httpd.conf和.htaccess)对它来说就是一堆没用的文本,根本不会加载解析。 - 你清空
httpd.conf网站还能跑,恰恰证明了当前服务根本不是 Apache 在提供。
怎么解决你的需求?
如果是想实现 .htaccess 里的规则,你需要把这些规则转换成 Nginx 的语法,然后给 Valet 自定义站点配置:
- 在你的 Laravel 项目根目录,创建一个名为
Valet的文件夹(注意首字母必须大写)。 - 在这个文件夹里新建
nginx.conf文件,把原来.htaccess中的规则转换成 Nginx 支持的写法。比如原来 Apache 的重写规则:
转换成 Nginx 就是:RewriteRule ^old-path$ /new-path [L,R=301]rewrite ^/old-path$ /new-path permanent; - 执行
valet restart重启 Valet 服务,新配置就会生效。
要是你非得用 Apache 怎么办?
Valet 也支持切换到 Apache,只需要在终端运行:
valet use apache
然后重启 Valet,这时候你再修改 Apache 的 httpd.conf(调整 AllowOverride All)和 .htaccess 就会生效了。
内容的提问来源于stack exchange,提问作者Epsilon47
相关产品推荐
相关产品推荐

