【问题标题】:Laravel not recognized after .htaccess changes.htaccess 更改后 Laravel 无法识别
【发布时间】:2015-12-20 17:00:09
【问题描述】:

这是刚刚发生的一系列令人费解的事件。

1) 我有一个正常工作的 Laravel 安装,有一个 empty .htaccess 文件,所有 URL 都可以工作。

2) 我在.htaccess 中添加了一些规则,只是为了玩一玩,然后删除这些规则。

3) 现在我又有了一个空的.htaccess(因此与上面的第 1 步相比没有任何变化)但是现在除了主页之外没有其他 URL 可以工作了。

例如,你会看到 http://jovansprojects.com/march_madness/ 工作(即 Laravel 文件夹的根目录),使用以下路由:

Route::get('/', 'HomeController@showWelcome');

但是http://jovansprojects.com/march_madness/login 不再工作了,尽管之前工作正常。

这是相关路线:

Route::get('login', 'SessionsController@create');

请注意,它不会引发 Laravel 错误,例如“未找到异常” - 它似乎根本不知道 Laravel 已安装在那里。

我根据一些在线建议尝试清除 Artisan 的缓存,但没有帮助。

所以,总结一下:.htaccess 与之前完全相同(空),但似乎服务器甚至不知道要求 Laravel 再处理这些 URL,而不是超出主页。

这些是我在 .htaccess 中添加和删除的规则(我想重定向尾部斜杠):

Options -MultiViews
RewriteEngine On
RewriteBase /march_madness/

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

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

我怀疑RewriteBase可能与它有关,但我删除规则后为什么没有恢复到原来的样子?

【问题讨论】:

  • 当你有那些 .htaccess 指令时它“工作”了吗?只是为了确认...您已完全删除了该文件?或者你有一个空文件——实际上是nothing?这个 .htaccess 文件在哪里 - 在文档根目录中?
  • 不,它不适用于 htaccess 指令(老实说,我什至不理解它们,我从另一个 SO 问题复制/粘贴)。文件中实际上没有任何内容,就像它过去工作时一样。我也尝试完全删除文件,同样的问题仍然存在。该文件位于 Laravel 的根目录 (march_madness)。
  • 就其本身而言,在 .htaccess 中添加和删除这些指令应该不会产生任何持久的影响。那么,必须有一些其他的缓存机制或者 其他的东西被改变了?
  • 如果有缓存机制在起作用,那肯定是默认安装的,因为我没有加。有任何想法吗?从我的角度来看,没有其他任何改变。
  • 现在我觉得自己很笨。在不同的目录中有两个 .htaccess 文件,其中一个具有允许不带“index.php”的 URL 的说明。现在很容易解决。感谢您阻止我在此问题上浪费更多时间 :) 如果您添加答案,我将很乐意接受。

标签: php .htaccess laravel redirect laravel-4


【解决方案1】:

看起来 Laravel 确实需要 .htaccess 中的“前端控制器”才能路由“漂亮”的 URL(即,不必在 URL 中使用 index.php 并依赖 PATH_INFO)。

因此,在 .htaccess 文件中(可能在 Laravel 安装的根目录中)至少需要以下内容:

RewriteEngine On

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

似乎有两个.htaccess。请注意,.htaccess 文件是沿文件系统路径继承的。但是,默认情况下不继承 mod_rewrite(上述指令所属的)。因此,如果您在子目录中启用重写引擎,则将忽略父目录中的 mod_rewrite 指令。

【讨论】:

    猜你喜欢
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2019-10-24
    • 2018-09-13
    • 1970-01-01
    • 2019-10-30
    相关资源
    最近更新 更多