设置
我正在尝试在服务器上的此目录中安装Laravel 5应用:
public_html/myapp/
我希望可以通过以下URL访问它:
http://www.example.com/myapp/
我已创建了这个.htaccess规则并将其放置在myapp
文件夹中,以便重定向请求:
RewriteEngine on
RewriteRule ^(.*)$ public/$1 [L]
问题:
在我的浏览器中,当我尝试访问应用程序时,我会被重定向到以下URL:
http://www.example.com/myapp/public/index.php
http://www.example.com/myapp/public/index.php/dashboard
而不是像下面这样漂亮的URL:
http://www.example.com/myapp/
http://www.example.com/myapp/dashboard
我需要在我的.htaccess文件中做出哪些改变才能使正确的URL起作用?
更新:Laravel应用程序可以移动到其他地方,只要可以实现上述期望的URL结构(应用程序可在example.com/myapp/处访问)。
更新:当我尝试访问example.com/myapp/dashboard
时,浏览器会显示以下错误信息:NotFoundHttpException in compiled.php line 7793:
堆栈跟踪从以下位置开始:
in compiled.php line 7793
at RouteCollection->match(object(Request)) in compiled.php line 7066
at Router->findRoute(object(Request)) in compiled.php line 7038
at Router->dispatchToRoute(object(Request)) in compiled.php line 7030
at Router->dispatch(object(Request)) in compiled.php line 1989
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
更新:以下的.htaccess文件位于公共文件夹中:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>