2

私はModRewriteを使用してindex.phpを削除しています。クエリは使いたくない。foo.com/barをfoo.com/index.php/barとして解釈したい。

これは問題なく実行されますが、NotFoundエラーが発生します。要求されたURL/home/foo/www/index.php/barがこのサーバーで見つかりませんでした。

なぜ!!

4

2 に答える 2

0

アップデート

私はあなたが何をしたいのか理解したと思います。ご覧のとおり、舞台裏でクエリを渡すことはできますが、提案していることを舞台裏で渡すことはできません。実際のリダイレクトを行う必要があります。このようなもの(重要な部分はR):

RewriteRule ^bar$ index.php/bar [NC,QSA,R]

これにより、新しい特別なパスを使用してページにリダイレクトされます。それはあなたが望んでいたことですか?

元の回答

パスの一部として解釈されるため、そのようなPHPページへのパスを渡すことはできません。おそらく、ファイルはLinux / Unixマシン上にあり、ディレクトリにで名前を付けることができます.。申し訳ありませんが、クエリ文字列を使用する必要があります。

RewriteBase /
RewriteRule ^bar$ index.php?page=bar [NC,QSA]

または 更新

RewriteBase /
RewriteRule ^bar$ index.php?/bar [NC,QSA]

また、Windowsの最後のいくつかのバージョンは.ディレクトリでもサポートされていると思いますが、よくわかりません。

于 2010-02-12T03:50:35.697 に答える
0

index.phpあなたが(奇妙なことに)と呼ばれるディレクトリを持っていない限り、はほぼ確実にファイルであり、ディレクトリではありませんindex.php。Apacheは、そのようなディレクトリがないことを正しく不平を言っています。

あなたはおそらくのようなことをするつもりindex.php?page=barでした。それに応じて調整します.htaccess

于 2010-02-12T03:51:26.353 に答える