Php 无脂路由在生产中不起作用

Php 无脂路由在生产中不起作用,php,fat-free-framework,Php,Fat Free Framework,我有一个具有许多路由路径的应用程序,如下所示- F3::route('GET /', 'Main->get_front_page'); F3::route('GET /login/check_for_login', 'Login->check_for_login'); 第一条路线正确匹配。然而,第二条路线不匹配,我得到了404。事实上,第一条路线之后的任何路线都不匹配 更复杂的是,所有路由都在我的本地机器上工作。检查您的apache.htaccess文件。尤其是RewriteBas

我有一个具有许多路由路径的应用程序,如下所示-

F3::route('GET /', 'Main->get_front_page');
F3::route('GET /login/check_for_login', 'Login->check_for_login');
第一条路线正确匹配。然而,第二条路线不匹配,我得到了404。事实上,第一条路线之后的任何路线都不匹配


更复杂的是,所有路由都在我的本地机器上工作。

检查您的apache.htaccess文件。尤其是
RewriteBase
url。我经常忘记这一点:)

对于共享主机,fatfree框架部署不会像在本地服务器中那样工作。因此,您需要创建一个.htaccess文件

# Enable rewrite engine and route requests to framework
RewriteEngine On

# Some servers require you to specify the `RewriteBase` directive
# In such cases, it should be the path (relative to the document root)
# containing this .htaccess file
#
# RewriteBase /

RewriteRule ^(tmp)\/|\.ini$ - [R=404]

RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

使用上述代码创建一个.htaccess文件,并将该文件放在无脂肪框架项目的根目录中。我尝试了这个方法,效果很好。

我的.htaccess文件看起来像这样-RewriteBase/RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-重写规则。*index.php[L,QSA]我在本地主机上也使用了相同的.htaccess文件。我在error.log-[Mon Mar 19 12:23:56 2012][error][client 122.169.95.17]文件中发现了这个错误:/var/www/login,referer:我不明白这意味着什么?它为什么要找这样一个文件?你是在子目录中使用它,还是作为你的主站点使用它?我是在子目录中使用它。然而,我解决了这个问题。我的重写模块工作不正常。命令en2mod不起作用。必须手动更改AllowOverride。我忘了我是在本地主机上做的。