【问题标题】:Laravel htaccess redirects in wrong wayLaravel htaccess 以错误的方式重定向
【发布时间】:2015-09-25 16:05:51
【问题描述】:

提前致谢。

我正在使用 laravel 5 并希望在 .htaccess 文件中进行一些修复。

这是我的 .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>

问题是,当我在 url 后添加一个额外的斜杠时,它会将我扔到我 www 文件夹的根目录。有没有可能的解决方案

http://localhost/project/public/index.php -- 工作正常。 http://localhost/project/public/index.php/ --将我重定向到http://localhost/index.php

无论如何我需要这个重定向到http://localhost/project/public/index.php

任何帮助表示赞赏。

【问题讨论】:

  • 添加这些行RewriteRule ^(.*)/$ /$1 [L,R=301]
  • 感谢您的建议,但仍然无法正常工作。现在我已将我的 .htaccess 编辑为 &lt;IfModule mod_rewrite.c&gt; &lt;IfModule mod_negotiation.c&gt; Options -MultiViews &lt;/IfModule&gt; 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] &lt;/IfModule&gt;
  • 试试这些RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
  • RewriteRule ^(.*[^/])$ /$1/ [L,R=301] in 现在重定向所有请求,而不管尾随 / 没有工作。

标签: php .htaccess laravel


【解决方案1】:

终于得到了完美的解决方案。

RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)/$ /$1 [L,R=301] // i have replaced the '/' and it worked.
RewriteRule ^(.*)/$ $1 [L,R=301]

【讨论】:

    【解决方案2】:

    看看config/app.php,那里的url指向你的项目文件夹

    'url' => 'http://localhost',
    

    【讨论】:

    • 完成,但仍然是同样的问题。
    • 在RewriteEngine On之后尝试RewriteBase /project/public/
    猜你喜欢
    • 2013-08-21
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2014-04-23
    • 2012-03-04
    • 1970-01-01
    相关资源
    最近更新 更多