Laravel网址无法在子文件夹中使用

时间:2017-11-03 09:15:26

标签: php laravel .htaccess redirect laravel-routing

我已经完成了我的laravel项目,并在我的域名下的子文件夹中播放。 https://example.com/swap

所以上面是我的目录的根目录,当我去那里时,我确实得到了索引。但是现在我按下的每个链接,我都被重定向到我的域的根目录。所以我得到了: https://example.com/events/1 而不是https://example.com/swap/events/1

我是否被迫在我的文件中手动更改所有网址是否有一种方式我的htaccess可以始终重定向到这个' swap'文件夹并将所有内容置于其后?

我尝试在我的路线中使用群组,但没有成功。

4 个答案:

答案 0 :(得分:0)

您需要将VHOST指向laravel的公用文件夹。这样做是为了安全起见。理想情况下,您的laravel安装位于公共文件夹之外,因此您可以让yourdomain.com包含您的laravel安装,并将您的公用文件夹重命名为swap。

如果您确实希望在路线中使用名称交换,则可以使用路线前缀和群组。

答案 1 :(得分:0)

打开.env文件并将您的应用个人网址更改为https://example.com/swap/并使用路线作为整个应用的链接
所有Url的工作都会正常工作。

答案 2 :(得分:0)

将laravel应用程序放在子文件夹中时。您需要为子文件夹托管修改.htaccess。并添加以下内容:

RewriteBase /swap

通过这种方式,应用知道您何时开始路由{{ url('/hello-world') }},它最终会转到" / swap / hello-world"

答案 3 :(得分:0)

将URL用于所有位于views文件夹内的链接:

  1. 对于子文件夹链接,请使用:
  

子文件夹链接

  1. 对于根文件夹链接,请使用以下语法:
  

索引

“ swap”子文件夹链接中的样式表和javascript可能出现问题,并出现404错误。要解决此问题,请使用:

<script type="text/javascript" src="{{asset('js/app.js')}}">
<link rel="stylesheet" type="text/css" href="{{asset('css/app.css')}}">