1

プロジェクトに含める必要があるプロジェクトがあります。つまり、プロジェクト A は、次の .htaccess 書き換えルールを使用するカスタム フレームワークの上に構築された Web サイトです。

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

RewriteRule ^(.*)$ index.php?url=$1 [PT,L]

2 番目のプロジェクト B は別のカスタム フレームワークの上に構築されており、最初のプロジェクトのサブフォルダーのように見えるようにすることになっています。そこで、プロジェクト B をフォルダー「サブフォルダー」内に配置しました。プロジェクト B には、次のような独自の .htaccess があります。

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?request=%{REQUEST_URI}&%{QUERY_STRING} [NE,L]

それらを単一の.htacessファイルにマージし、Apacheに次のように伝えたい:

パラメータ /subfolder がある場合、すべてを subfolder/index.php にリダイレクトします

それ以外の場合は、すべてを index.php にリダイレクトします

どうすればそれを行うことができますか?

4

1 に答える 1

3

あなたがすべきことは次のとおりです。

最初のプロジェクトでは、この htaccess ファイルはドキュメント ルートにあります。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L]

次に、2 番目のプロジェクトでは、この htaccess ファイルは次のsubfolderディレクトリにあります。

RewriteEngine On
RewriteBase /subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?request=%{REQUEST_URI} [NE,L,QSA]

何らかの理由でそれがうまくいかない場合は、ドキュメントルートにある htaccess ファイルを結合すると、次のようになると思います。

RewriteEngine On

# for 2nd project
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?subfolder/(.*)$ /subfolder/index.php?request=$1 [NE,L,QSA]

# for 1st project
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1 [L]

もう少し微調整が必​​要になりそうです。

于 2012-08-06T09:13:21.527 に答える