問題描述
我正在嘗試為 PHP 設(shè)置和學(xué)習(xí) Fat Free 框架.http://fatfree.sourceforge.net/
I am trying to setup and learn the Fat Free Framework for PHP. http://fatfree.sourceforge.net/
設(shè)置相當(dāng)簡(jiǎn)單,我使用 MAMP 在我的機(jī)器上運(yùn)行它.
It's is fairly simple to setup and I am running it on my machine using MAMP.
我能夠讓 'hello world' 示例僅在 fin 上運(yùn)行:
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();
但是當(dāng)我嘗試添加有兩條路線的第二部分時(shí):
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();
如果我嘗試第二個(gè) URL:/about
I get a 404 error if I try the second URL: /about
不確定為什么 mod_rewrite
命令中的一個(gè)會(huì)起作用,而另一個(gè)不起作用.
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>
推薦答案
所以我的朋友實(shí)際上幫我解決了這個(gè)問題.我遇到了完全相同的問題,但基本上我也在使用 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]
設(shè)置后,您可以完全按照 Fat Free 文檔中的示例進(jìn)行操作,它會(huì)像魅力一樣發(fā)揮作用.這讓我難住了一段時(shí)間,這就是它所需要的.此外,如果您使用 MAMP,請(qǐng)編輯 /Applications/MAMP/conf/apache
中的 httpd.conf
文件,并確保更改以下內(nèi)容:
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
.
這篇關(guān)于Fat Free 框架中 mod_rewrite 的簡(jiǎn)單問題的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!