许多人发布了htaccess后,用于从网址中删除“公共”的信息。但我正在研究WAMP,这不起作用:
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
这显示来自Laravel框架的以下错误消息:
抱歉,找不到您要查找的页面。 RouteCollection.php第161行中的1/1 NotFoundHttpException:
还有其他一些方法可以从网址中删除“公共”,但我想了解为什么这种方法不适用于我自己在帖子中频繁关注的人。我的网址是:http://localhost/laravel/(目录:d:/ wamp / www / laravel)
任何人都可以帮助我理解为什么这种流行的方法不适合我吗?他们在Laravel内部路由中是否有任何问题,因为我认为我的htaccess工作正常?
非常感谢。
答案 0 :(得分:0)
我很抱歉这不是您想要的但是......而不是重写路径,转到您的Apache配置并更改您的目录,以便它包括/ public。这样你就可以从URL中删除现在必要的公共。我知道这不是你问题的答案,所以请不要贬低。不过,它应该可以解决你的问题。
答案 1 :(得分:0)
您的路由器未获取重定向路径,因为您的laravel安装是您的网络服务器中的子目录,而RewriteRule ^(.*)$
正在拾取包含/laravel
的整个路径。这被附加到public/
,因为它是在$1
中捕获的。
最简单的情况可能是将RewriteRule更改为不捕获laravel
目录。
例如:
ReqriteRule ^laravel/(.*)$ public/$1 [L]
您可能需要也可能不需要正斜杠
^/laravel/(.*)$ ...
或者,(并且更准确地说)您应该在apache配置中设置虚拟主机,以便在虚拟主机的根目录中提供laravel应用程序(因为它的设计)或您可能会感觉更好从长远来看,使用Laravel Homestead作为预配置的开发环境。