【问题标题】:What's wrong with this part of htaccesshtaccess 的这一部分有什么问题
【发布时间】:2013-03-15 00:56:21
【问题描述】:

我正在为我的一个客户建立一个网站。为此,我使用 Laravel 框架。 现在我知道最好的做法是将公共目录设置为 DocumentRoot,但问题是,我不能。 所以我做了一些研究,发现你可以使用 .htaccess 来处理这个小问题。 laravel 论坛上的 sn-p 如下:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

但是当我尝试这个时,我得到一个 500 内部服务器错误。 我发现问题出在第四行的(.*) 部分......但我就是看不出它有什么问题。

那么有谁知道这个 sn-p 出了什么问题,为什么我会收到 500 错误...

【问题讨论】:

    标签: php .htaccess rewrite laravel


    【解决方案1】:

    你快到了。 REQUEST_URI 包括前导斜线 /。所以你必须说

    RewriteCond %{REQUEST_URI} !^/public
    

    【讨论】:

      【解决方案2】:

      不要更改 public 文件夹路径,只需复制通常的 laravel 树并在 /public/.htaccess

      <IfModule mod_rewrite.c>
       RewriteEngine on
       RewriteBase /
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ index.php?/$1 [L]
      </IfModule>
      

      这在 L3 上对我有用。

      【讨论】:

        猜你喜欢
        • 2012-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多