Laravel 5.2 路由仅适用于根目录
Posted
技术标签:
【中文标题】Laravel 5.2 路由仅适用于根目录【英文标题】:Laravel 5.2 routes work only on root directory 【发布时间】:2016-08-23 21:37:58 【问题描述】:当 Laravel 安装在非根域的文件夹中时,我无法访问我的路由 (404)。
例如,如果我在根域中安装 Laravel 并添加路由anyroutes
,我可以毫无问题地访问localhost/anyroutes
。
但是
如果我将 Laravel 安装在 localhost/project/
之类的文件夹中并添加该路由:localhost/project/public/anyroutes
它会给我 404。我不得不提一下 localhost/project/public/index.php/anyroutes
会起作用。
我在早期版本的 Laravel 中没有这个问题。
我该如何解决这个问题?
Apache (XAMPP)、PHP 7、mod_rewrite
已启用并且...
更新:
.htaccess
文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %HTTP:Authorization .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
</IfModule>
apache 配置:
<Directory />
Allowoverride All
# AllowOverride none
Require all denied
</Directory>
DocumentRoot "E:/projects"
<Directory "E:/projects">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
【问题讨论】:
你检查你的目录是否有正确的权限? @imrealashu 是的,没关系。你有这个问题还是只有我一个人有这个问题? 是的,我拥有它,但我更改了权限级别并且它起作用了。您使用的是哪个操作系统? windows、unix还是linux? @imrealashu Windows。在 Windows 中,我们通常不会遇到权限问题 .. 是的。你确定你在安装后完成了composer update
或composer install
吗?
【参考方案1】:
这是我的.htaccess
文件。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %REQUEST_FILENAME !-d
#RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
【讨论】:
这个.htaccess
是针对早期版本的 Laravel。不是5.2。我尝试过这个。不幸的是,它没有用。
我什么都试过了,从来没有遇到过这样的事情,但有一次只是因为权限问题而已。以上是关于Laravel 5.2 路由仅适用于根目录的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Laravel 中间件适用于单个路由而不适用于一组路由
JSON Web Token 仅适用于具有 Eloquent 模型的 Laravel
Laravel Route 模型绑定(slug)仅适用于 show 方法?
是否有仅适用于控制台应用程序的 laravel 版本? [关闭]