我有文件夹/var/www/html/project/himp
,有我的拉拉维尔安装。/var/www/html/project
是我的登陆页面索引.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时,我只得到文件夹视图,因此没有重定向到公共文件夹...
为什么?这里可能有什么问题?请帮忙。
与RewriteRule
中的模式相反(请参阅"匹配的内容?"),变量REQUEST_URI
包含完整路径,包括/himp
。所以条件应该是
RewriteCond %{REQUEST_URI} !/public
没有字符串锚点^
开头,或者必须包含完整路径
RewriteCond %{REQUEST_URI} !^/himp/public