私はModRewriteを使用してindex.phpを削除しています。クエリは使いたくない。foo.com/barをfoo.com/index.php/barとして解釈したい。
これは問題なく実行されますが、NotFoundエラーが発生します。要求されたURL/home/foo/www/index.php/barがこのサーバーで見つかりませんでした。
なぜ!!
私はModRewriteを使用してindex.phpを削除しています。クエリは使いたくない。foo.com/barをfoo.com/index.php/barとして解釈したい。
これは問題なく実行されますが、NotFoundエラーが発生します。要求されたURL/home/foo/www/index.php/barがこのサーバーで見つかりませんでした。
なぜ!!
アップデート
私はあなたが何をしたいのか理解したと思います。ご覧のとおり、舞台裏でクエリを渡すことはできますが、提案していることを舞台裏で渡すことはできません。実際のリダイレクトを行う必要があります。このようなもの(重要な部分は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の最後のいくつかのバージョンは.
ディレクトリでもサポートされていると思いますが、よくわかりません。
index.php
あなたが(奇妙なことに)と呼ばれるディレクトリを持っていない限り、はほぼ確実にファイルであり、ディレクトリではありませんindex.php
。Apacheは、そのようなディレクトリがないことを正しく不平を言っています。
あなたはおそらくのようなことをするつもりindex.php?page=bar
でした。それに応じて調整します.htaccess
。