【问题标题】:Laravel + htaccess not allowing access to directoriesLaravel + htaccess 不允许访问目录
【发布时间】:2016-05-02 04:03:32
【问题描述】:

要从 laravel 中删除 /public/ ,我使用了以下代码

RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.comn$ [NC,OR]
RewriteCond %{HTTP_HOST} ^site.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*) /public/$1 [L]

但现在的问题是我什至无法访问保存在 site.com/files/image.png 或类似内容下的文件。它向我显示 404 页面。

如何修改 htaccess 以允许访问某些目录。请帮忙。

【问题讨论】:

    标签: php .htaccess laravel server


    【解决方案1】:

    这是因为您将所有内容都重定向到 /public/。您需要从重定向中排除现有的目录和文件。

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^site.comn$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^site.com$
    RewriteRule ^/?$ /public/ [L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/public/
    RewriteRule ^(.*) /public/$1 [L]
    

    【讨论】:

    • 我不擅长 mod_rewrite。例如,如果我在 root 上有一个名为 /files/ 的目录,你能告诉我该怎么做吗?
    • @kirobo 抱歉,我的回答有误,编辑应该可以工作
    • 是的!谢谢。它允许下载目录。但是现在当我访问我的主域 site.com 时 - 我可以看到目录列表,我必须再次访问 site.com/public/ 才能看到该站点。 :( 我们可以这样做吗,一切都保持不变,只允许下载文件而不显示 404。
    • 完美运行! :) 谢谢你,先生。我欠你一杯。 :)
    猜你喜欢
    • 2018-04-19
    • 2019-03-03
    • 2010-11-16
    • 1970-01-01
    • 2014-01-03
    • 2012-09-20
    • 2011-09-26
    • 2015-08-07
    • 1970-01-01
    相关资源
    最近更新 更多