Laravel:带有尾随斜杠的URL的Apache别名

Laravel:带有尾随斜杠的URL的Apache别名,apache,laravel,Apache,Laravel,我在目录/home/user/Documents/Laravel training中有一个Laravel网站 我想访问我的网站从http://localhost/dev/, 因此,我在/etc/apache2/sites enabled/000-default.conf中设置了一个别名 这是我的000-default.conf: 然后我就可以从http://localhost/dev/test. 但是如果我的URL是http://localhost/dev/test/,服务器将错误地将我的页面重

我在目录/home/user/Documents/Laravel training中有一个Laravel网站

我想访问我的网站从http://localhost/dev/, 因此,我在/etc/apache2/sites enabled/000-default.conf中设置了一个别名

这是我的000-default.conf:

然后我就可以从http://localhost/dev/test.

但是如果我的URL是http://localhost/dev/test/,服务器将错误地将我的页面重定向到http://localhost/test,并导致404未找到错误

Not Found
The requested URL /test was not found on this server.

Apache/2.4.12 (Ubuntu) Server at localhost Port 80
有人知道如何解决这个问题吗

针对Stefano Ortisi的评论: 我没有在.htaccess中更改任何其他内容。我只是保留了默认设置

RewriteBase /dev

<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]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

它在没有尾部斜杠的情况下重定向不是错误

在public/.htaccess中,您可以看到以下行:

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

^^^如注释所述,如果url不是文件夹,则将使用尾随斜杠重定向url。如果删除,您将看到它不会重定向您。

您是否仔细检查了laravel公用文件夹中的.htaccess是否正常?@StefanoOrtisi我没有修改任何其他内容。我已经更新了我的帖子。请尝试在RewriteEngine On指令之后移动RewriteBase/dev指令。@patricus我已经尝试过了,但问题仍然存在。谢谢!抱歉,我不熟悉Apache配置文件。
RewriteBase /dev

<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]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]