【发布时间】:2014-08-20 21:40:33
【问题描述】:
我在 localserver 上有一个 laravel 项目,并且希望它即使在结尾的斜杠添加到 url 时也能正常工作。使用 localhost url 访问时工作正常。 htaccess如下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /LaravelProject/public/
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ $1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
试图访问像
这样的页面http://localhost/LaravelProject/public/login
and
http://localhost/LaravelProject/public/login/
工作正常。
不过我也有这样定义的 VirtualHost
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/LaravelProject/public"
ServerName LaravelProject.dev
ServerAlias www.LaravelProject.dev
ErrorLog "c:/wamp/logs/apache_error.log"
CustomLog "c:/wamp/logs/access.log" common
</VirtualHost>
通过urllaravelproject.dev,我可以访问文档根目录,可以看到“你已经到了”。但是当我尝试访问其他网址时说laravelproject.dev/login,它给了我500 Internal Server Error。
如果我从.htaccess 中删除RewriteBase 并将RewriteRule 修改为
RewriteRule ^(.*)/$ /$1 [L,R=301]
然后网址 laravelproject.dev/login 和 laravelproject.dev/login/ 工作正常。
如果我这样做,问题仍然存在,localhost url 带有斜杠和
url http://localhost/LaravelProject/public/login/ 重定向到http://localhost/login。
我希望能够同时使用 localhost 和 virtualhost url 带有和不带有尾随斜杠并给出相同的结果。看来,对我来说是其中之一。
【问题讨论】:
标签: apache .htaccess url laravel virtualhost