【问题标题】:Directory of .htaccess get changed.htaccess 的目录被更改
【发布时间】:2019-08-09 20:37:14
【问题描述】:

在我的 laravel 项目中。我已将 htaccess 文件的目录从公共文件夹更改为根目录。现在asset() 在服务器上无法正常工作以访问文件。我认为需要在 htaccess 文件中进行更改。

我用 URL::asset() 和 url() 替换了asset(),但它不起作用。

选项 - 多视图

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]

RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php

我想使用asset() 来访问公用文件夹中的文件。

【问题讨论】:

    标签: laravel .htaccess laravel-5


    【解决方案1】:

    .htaccess 需要在公共/而不是项目的根目录中。实际上 public/ 是网络的根,最终用户。

    【讨论】:

    • 您是否更改了默认的 .htaccess from public/ ?
    • 我将 index.php 和 .htaccess 从 public 移到了 root .. 我没有改变任何其他东西
    • 你在吗?
    • index.php 和 .htacces 必须在 public/ 中。为什么是不同的主题。
    【解决方案2】:

    你的 Laravel 项目的根目录不应该公开可见。

    我得到的印象是您已将 Laravel 安装在服务器上的公共文件夹中。这是你做的吗?

    /home/{user}/public_html/{your Laravel installation}
    

    最好将 Laravel 安装移动到公共根目录之外的自己的文件夹中。

    /home/{user}/laravel/{your Laravel installation}
    

    然后,您可以删除 public_html 文件夹并将其替换为指向您的 laravel/public 文件夹的符号链接。

    rmdir /home/{user}/public_html
    ln -s /home/{user}/laravel/public /home/{user}/public_html
    

    这将使您能够维护应用程序文件的安全性。

    【讨论】:

    • 问题是我的服务器没有 public_html 文件夹。如果它存在,我可以将我的 htaccess 文件和 index.php 文件移动到该文件夹​​。现在它不存在,我将我的两个文件都移动到根目录,我的项目也安装在根目录中
    • 它可能不叫'public_html`,但你必须有一个公共文档根目录。
    • 是的,我有公用文件夹。但是当我移动 index.php 和 .htaccess 文件时,服务器给了我 404 错误
    • 这里是 url "public/qr.solutions-iv.com/js/app.js" 它应该是 "qr.solutions-iv.com/js/app.js" 我从源代码查到了
    • 您不能只是移动这些文件并期望一切正常。如果在您将 index.php 放入您所称的 http://yourdomain.com/index.php 的“根”文件夹中时找到了 index.php,那么根据服务器,该“根”文件夹就是您的公共文档根目录。根据我的回答,您应该将 Laravel 比“根”高一级。
    猜你喜欢
    • 2012-01-11
    • 2012-09-26
    • 2017-06-06
    • 2011-03-11
    • 2011-08-24
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多