我正在尝试为 PHP 设置和学习 Fat Free 框架.http://fatfree.sourceforge.net/
I am trying to setup and learn the Fat Free Framework for PHP. http://fatfree.sourceforge.net/
设置相当简单,我使用 MAMP 在我的机器上运行它.
It's is fairly simple to setup and I am running it on my machine using MAMP.
我能够让 'hello world' 示例仅在 fin 上运行:
I was able to get the 'hello world' example running just fin:
require_once 'path/to/F3.php';
F3::route('GET /','home');
function home() {
echo 'Hello, world!';
}
F3::run();
但是当我尝试添加有两条路线的第二部分时:
But when I try to add in the second part, which has two routes:
require_once 'F3/F3.php';
require_once 'F3/F3.php';
F3::route('GET /','home');
function home() {
echo 'Hello, world!';
}
F3::route('GET /about','about');
function about()
{
echo 'About Us.';
}
F3::run();
如果我尝试第二个 URL:/about
I get a 404 error if I try the second URL: /about
不确定为什么 mod_rewrite 命令中的一个会起作用,而另一个不起作用.
Not sure why one of the mod_rewrite commands would be working and not the other.
下面是我的 .htaccess 文件:
# Enable rewrite engine and route requests to framework
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]
# Disable ETags
Header Unset ETag
FileETag none
# Default expires header if none specified (stay in browser cache for 7 days)
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A604800
</IfModule>
所以我的朋友实际上帮我解决了这个问题.我遇到了完全相同的问题,但基本上我也在使用 MAMP,并且在 MAMP 的 htdocs 中的 fatfree 目录中保存了我所有的 Fat Free 文件.
So my friend actually helped me out with this issue. I ran into the exact same problem, but basically I'm using MAMP also and have all my Fat Free files within a fatfree dir within htdocs of MAMP.
解决方案是您需要修改 RewriteBase 以指向 /[dirname]/ 而不仅仅是 / 然后更改 RewriteRule 到 /[dirname]/index.php.
The solution is you need to mod the RewriteBase to point to /[dirname]/ instead of just / and then change RewriteRule to /[dirname]/index.php.
我的 .htaccess 如下所示:
My .htaccess looks like this:
RewriteEngine On
RewriteBase /fatfree/
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /fatfree/index.php [L,QSA]
设置后,您可以完全按照 Fat Free 文档中的示例进行操作,它会像魅力一样发挥作用.这让我难住了一段时间,这就是它所需要的.此外,如果您使用 MAMP,请编辑 /Applications/MAMP/conf/apache 中的 httpd.conf 文件,并确保更改以下内容:
After that's set, you can follow the example in the Fat Free doc exactly and it'll work like a charm. This stumped me for a while and this was all it needed. Also, if you're using MAMP, edit the httpd.conf file in /Applications/MAMP/conf/apache and be sure to alter the following:
<Directory />
Options Indexes FollowSymLinks
AllowOverride None
</Directory>
到
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
基本上把None改成All.
这篇关于Fat Free 框架中 mod_rewrite 的简单问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
Zend 中的动作视图助手 - 解决方法?Action View Helper in Zend - Work around?(Zend 中的动作视图助手 - 解决方法?)
这是将 URI 与 PHP 中用于 MVC 的类/方法匹配的好方Is this a good way to match URI to class/method in PHP for MVC(这是将 URI 与 PHP 中用于 MVC 的类/方法匹配的好方法吗)
我在哪里保存 Zend Framework 中的部分(视图),以便Where do I save partial (views) in Zend Framework, to be accessible for all Views in my App?(我在哪里保存 Zend Framework 中的部分(视图),以
有一个网站的单一入口点.坏的?好的?没问题?Having a single entry point to a website. Bad? Good? Non-issue?(有一个网站的单一入口点.坏的?好的?没问题?)
MVC + 服务层在 Zend 或 PHP 中常见吗?Is MVC + Service Layer common in zend or PHP?(MVC + 服务层在 Zend 或 PHP 中常见吗?)
PHP MVC 方法中的 Hello World 示例Hello World example in MVC approach to PHP(PHP MVC 方法中的 Hello World 示例)