在url和虚拟主机中尾随斜杠

时间:2014-06-30 13:39:31

标签: apache .htaccess url laravel virtualhost

我在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>

通过网址laravelproject.dev,我可以访问文档根目录,并可以看到“你已经到达”。但是,当我尝试访问其他网址laravelproject.dev/login时,它会给我500 Internal Server Error

如果我从RewriteBase移除.htaccess并将RewriteRule修改为

RewriteRule ^(.*)/$ /$1 [L,R=301]

然后网址laravelproject.dev/loginlaravelproject.dev/login/正常工作。 如果我这样做,问题仍然存在,localhost url带有尾部斜杠和 网址http://localhost/LaravelProject/public/login/重定向到http://localhost/login

我希望能够使用 localhost 虚拟主机网址使用和不使用结尾斜杠,并提供相同的结果。看起来,它对我来说是一个或另一个。

1 个答案:

答案 0 :(得分:0)

我认为您的.htaccess文件中不需要任何这些行。我已经在几个项目中设置了这样的设备并且它的工作非常好:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
       Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>