7

我按照此处的说明创建了一个测试 hello world Slim 应用程序。

当我拨打这个电话时,我收到一个 404 错误:

http://my_server/my_app/hello/John

另一方面,当我拨打这个电话时,当我收到“Hello John”消息时,它的效果很好:

http://my_server/my_app/index.php/hello/John

但是,当然,我不想在我的 URL 中出现 index.php ......有什么问题吗?

======= 编辑 =======

我忘了像这样创建 .htaccess 文件(遵循 Slim Framework 文档,并且与 index.php 在同一目录中):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

现在我得到这个错误:

/physical_path_to_my_files/index.php was not found on this server
4

4 回答 4

16

如果您的 htaccess 文件在您的/my_app目录中,请将您的规则更改为:

RewriteEngine On

RewriteBase /my_app/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

如果它在您的文档根目录中,则需要附加路径:

RewriteRule ^ /my_app/index.php [QSA,L]
于 2012-09-09T23:10:55.970 回答
5

也可以将 .htaccess 更改为以下内容:(我遇到了类似的问题,这为我解决了):

.ht 访问:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
于 2013-11-09T22:29:45.143 回答
1

如果 Jon Lin 解决方案不起作用,则意味着您的 .htaccess 文件不起作用。您可以验证我添加了一条垃圾线,例如

RewriteEngine On
RewriteBase /loop/v1/

This is garbage line

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

如果 .htaccess 工作正常,这将产生 503 错误,否则您不会收到任何错误。

如果您没有收到任何错误,请在 apache conf 文件或 Httpd.conf 的 Directory 部分中将 Allow none 更改为 Allow all

于 2014-10-26T11:29:40.673 回答
-1

该资源解释了在 Ubuntu 上使用 slim 所需的所有配置(它帮助我解决了 404 问题):

总而言之,有两件事需要配置:

  1. 激活 mod_rewritea2enmod rewrite
  2. 修改 Apache 配置文件(更改AllowOverride NoneAllowOverride All 文档根目录)

更改后不要忘记重新启动 apache2:service apache2 restart

如何在 Ubuntu 14.04 上安装和配置 Slim 框架

于 2016-08-30T11:12:23.457 回答