.htaccess文件不会重定向到/ public文件夹(laravel issue)

时间:2017-03-12 13:53:59

标签: apache laravel .htaccess redirect mod-rewrite

我有文件夹/var/www/html/project/himp,我的laravel安装。 /var/www/html/project是我的目标网页index.html和一些css文件。

/himp文件夹中我有.htaccess:

    <IfModule mod_rewrite.c>
RewriteEngine On

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

也在/himp/public文件夹中我也有.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]
</IfModule>

现在,当我访问 domain.com/himp/public 时,我会获得Laravel安装和启动屏幕但是当我转到 domain.com/himp 时,我得到了只是文件夹视图,所以没有重定向到公共文件夹...

为什么呢?这可能有什么问题?请帮忙。

1 个答案:

答案 0 :(得分:1)

RewriteRule中的模式相反(参见&#34;匹配什么?&#34;),变量REQUEST_URI包含完整路径,包括{ {1}}。所以条件应该是

/himp

没有字符串锚RewriteCond %{REQUEST_URI} !/public 的开头,或者您必须包含完整路径

^