0

任意のディレクトリに挿入すると Just Work(TM) が動作する REST フレームワークがあります。サブディレクトリにプロジェクトがある場合は正常に動作するように見えますが、ルートにある場合は動作しません。したがって、いくつかのディレクトリの例が与えられます。

/
/project1
/bingo/project2
/hoopla/doopla/minor/project3

プロジェクトがルートディレクトリで実行されているときに「おかしな」* が発生することを除いて、これらはすべて正常に機能します (説明するのは少し難しいと思いますが、第 2 レベルの書き換えは正しく機能していません)。一般的な .htaccess ファイルでの私の試みは次のとおりです。

RewriteEngine On
RewriteRule ^static/ - [L]
RewriteCond %{REQUEST_URI} ^$
RewriteRule .* ./ [R,L]
RewriteRule ^index.php - [L]
RewriteRule (.*) index.php?q=$1 [QSA,PT]

(そして、はい、すべてのプロジェクトにはサブディレクトリ ./static があり、これは書き換えによって無視されます)サーブ)。私は決してルールの書き直しの達人ではありません。良いアドバイスや落とし穴があれば大歓迎です (そして、そうです、私はあまりにも多くの紹介記事を読んできました。私はいくつかの真剣なジュースが必要です.)

  • お笑いの詳細情報; 私のウェブサーバーには 1 つの場所 (/usr/share/apache2/default-site/ の下) に docroot がありますが、/projects が docroot のサブディレクトリ (/home/user/プロジェクト/)。そこに行くと、/projects サブディレクトリのリストを取得し、これらのサブディレクトリの 1 つが提案された書き換えルールで呼び出されると (restmapp)、取得します。

    要求された URL /home/user/Projects/restmapp/index.php がこのサーバーで見つかりませんでした。

4

1 に答える 1

0

次のルールを試してください。

RewriteRule ^static/ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?q=$0 [L,QSA]

編集   さらに、Rフラグを使用して外部リダイレクトを強制するか、 mod_rewrite のロギング機能を有効にして、リクエストが内部でどのように書き換え/リダイレクトされるかを確認できます。

于 2009-04-26T18:43:25.010 に答える