0

複数の JS アプリ パッケージを実行するシステム用のデフォルトの .htaccess を作成しています。これらのアプリをルートから実行するように転送する URL 書き換えが必要です (つまり、システムが www/ に含まれている場合 www /appname/はserver.index.php?app=appnameに転送する必要があります)。

これが私が今持っているものの大まかなものです(.htaccessの他のものはスキップします).

RewriteRule ^use/?([^/]*)/?([^/]*)/?([^/]*)/? \server/index.php?app=$1&servable=$2&action=$3
RewriteRule ^web/?([^/]*)/? \server/index.php?servable=clients&action=web&app=$1

ご覧のとおり、私は現在 2 つのエンドポイントを使用しています。バックエンドの任意のアクションに転送を使用し、アプリケーション自体を HTML ドキュメントとして実際に提供するアクションにWeb転送を使用します。基本的に、後者の場合、URL のweb/プレフィックスをスキップしたいのですが、システムのディレクトリに既に存在する自然なディレクトリへのアクセスを妨げることはありません。

ここに完全なソースがあります。(ご覧のとおり、おそらく私の .htaccess には他にも問題があると思われますので、ご指摘があれば喜んで修正いたします。)

4

1 に答える 1

0

基本的に、後者の場合、URL の web/ プレフィックスをスキップしたいのですが、システムのディレクトリに既に存在する自然なディレクトリへのアクセスを妨げません。

条件フラグ-fとを使用して確認でき-dます。/webルールのすぐ上にこれらの条件を含めると、次のようになります。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

要求された URI が既存のファイルまたはディレクトリにマップされないことを意味する場合:

RewriteRule ^/?([^/]*)/? \server/index.php?servable=clients&action=web&app=$1

部分がないことを除いて/web

于 2012-10-02T06:45:55.673 に答える