如何让 Slim 框架工作而无需将 /index.php 放入 URL?

Posted

技术标签:

【中文标题】如何让 Slim 框架工作而无需将 /index.php 放入 URL?【英文标题】:How do I get Slim Framework to work without having to put /index.php in the URL? 【发布时间】:2012-07-19 03:29:37 【问题描述】:

我正在为 php 实现 Slim 框架,一切似乎都运行良好。但是,我可以让它工作的唯一方法是将 /index.php 放在 URL 中,如下所示:

http://www.example.com/index.php/members/1

我希望它像这样工作:

http://www.example.com/members/1

我感觉这与我的 .htaccess 相关,但我不确定。这是我的 .htaccess:

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

【问题讨论】:

遇到同样的问题...我可以让 / 重新路由到 index.php 但任何子目录都没有被重新路由... 【参考方案1】:

恢复已注释的 (#) 行并删除另一行应该会有所帮助。当你下载 Slim Framework 时,originally had this in the .htaccess 也是如此。

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

另外,你应该learn about writing rewrite rules,因为没有它你不会走得太远。

【讨论】:

谢谢,@bazmegakapa。那是我最初在 .htaccess 中的内容,但它似乎仍然不起作用。我感觉我的重写引擎可能没有打开。我现在正在尝试解决这个问题。【参考方案2】:

我认为这个答案来晚了,但是按照这个链接的信息http://docs.slimframework.com/routing/rewrite/ 我需要将 AllowOverride All 语句添加到我的虚拟主机配置中,这对我有用。

【讨论】:

根本没有迟到,它帮助了我......我完全忘记在我的新服务器中配置该功能;)谢谢!【参考方案3】:

检查您的虚拟主机并允许全部覆盖。

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

【讨论】:

以上是关于如何让 Slim 框架工作而无需将 /index.php 放入 URL?的主要内容,如果未能解决你的问题,请参考以下文章

手动安装Slim 3.x.

Slim框架消息:Callable Homecontroller不存在

Slim 框架中的设置文件 .env

使用 php Slim 框架实现访问控制认证

在 Slim 框架上发布请求

Slim 框架 .htaccess / 山狮 osx