Apache 2.2 と PHP 5.3 を使用しています。ルーティングに Fatfree フレームワークを使用しようとしています。私の index.php ファイルは次のようになります。
<?php
require_once 'f3/lib/base.php';
F3::route('GET /','home');
function home() {
echo F3::render('templates/index.html');
}
F3::route('GET /@pagenum','mainlist');
function mainlist() {
F3::set('pagenum', @pagenum);
echo Template::serve('templates/index.html');
}
F3::run();
?>
「http://localhost:8080/」にアクセスすると、ファイル templates/index.html が正しくレンダリングされます。これは、PHP と Fatfree が機能していることを意味します。しかし、「http://localhost:8080/1」にアクセスしても機能しません。次のエラーが表示されます。
Not Found
The requested URL /1 was not found on this server.
最初の部分を
F3::route('GET /anotherthing','home');
function home() {
echo F3::render('templates/index.html');
}
次に、「http://localhost:8080/anotherthing」も機能しません。ルートでのみ機能します。何か助けはありますか?
詳細情報 これは httpd.conf で設定されます
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs"
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
Options -Indexes FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from All
</Directory>
Modrewrite が有効になっています:
LoadModule rewrite_module modules/mod_rewrite.so
.htaccess は次のようになります。
RewriteEngine On
RewriteBase /fatfree/
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /fatfree/index.php [L,QSA]
「/fatfree/」ベースは、同様の問題があった別の SO 質問の回答によるものです。
次の .htaccess でも試しました。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]