2011-01-09 13 views
0

私のhtaccessファイルは、以下であるいくつかのオプションのために働く:work.phpルールが機能しているModRewriteは

RewriteEngine On 
RewriteRule ^blog/post/([0-9]+) /blog.php?post=$1 
RewriteRule ^blog/page/([0-9]+) /blog.php?page=$1 
RewriteRule ^work/([0-9]+) /work.php?ID=$1 

、しかし、2つのブログのルールはありません。彼らはすべての仕事に慣れていましたが、最近私のサーバーを移動しました。なぜこのようなアイデアですか?

ありがとうございます!

編集: うわー、私は仕事用のフォルダがありますが、ブログフォルダがないことに気がつきました。なぜどんなアイデア?

答えて

1

PHP 5.2をモジュールとして実行しているローカルのApache 2.2インストールに(仮想)サーバーを設定しました。サーバーのドキュメントルートには、上記の例を(単純に)処理するためのPHPファイルのみが含まれていました($ _GETのパラメータをエコーし​​ます)。ドキュメントルートの.htaccessファイルには、上記で指定したものだけが含まれていました。ドキュメントルートに/ workまたは/ blogというサブディレクトリ(または/ blog/postまたは/ blog/page)が含まれていませんでした。

私のセットアップでは、SEOに優しいURLを適切なPHPファイルに書き直しても何の問題もなく、$ _GETから期待したパラメータ値が返されました。

mod_rewrite以外にもサブディレクトリが必要ですが、Apacheは書き換えルールを処理する前にそれを打つ(必要とする)ためです。それが何であるかはわかりませんが、上記の規則を守れば、mod_rewriteではないようです。

関連する問題