细长的PHP路由不起作用

Luk*_*uke 3 php apache .htaccess

我已经构建了一个Slim PHP应用程序并将其发布在我的Web服务器上。

仅当我直接通过index.php页面浏览时,路由才可用

例如example.com/index.php/login和/index.php/signup

都呈现预期的视图

但是,如果我省略index.php并浏览到“ example.com/login”或“ example.com/signup”,我会得到404

我的.htaccess文件与index.php

public/
??? .htaccess
??? index.php
Run Code Online (Sandbox Code Playgroud)

该public文件夹配置为DocumentRoot /var/www/example.com/publicin apache

我的.htaccess文件包含以下内容:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

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

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

任何建议如何解决我的路由?

car*_*eol 6

Slim建议对Apache使用这些规则。(.htaccess)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

注意,您必须在Apache配置中将AllowOverride指令设置为“ All”,并确保“ / public”是您的根虚拟目录。