リダイレクトなしでディレクトリを別のディレクトリに書き換える

リダイレクトなしでディレクトリを別のディレクトリに書き換える

次のような書き換えルールがあります:

RewriteRule ^support/(.*)$ /blog/support/$1 [R=301,NC,L]

しかし、これは単純なリダイレクトを行うだけです。の URL を変更せずに/supportのコンテンツを表示したいのですが、どうすればよいでしょうか?/blog/support/support

さらに、上記は/support末尾にスラッシュがある場合にのみ機能します。

答え1

/blog/supportがファイルシステム内の場所、例えば に対応する場合は/var/www/blog/support、次のように使用できます。

Alias /support /var/www/blog/support

ドキュメンテーションただし、Alias ディレクティブでは、2 番目の引数は別の URL ではなく、ファイルまたはディレクトリ パスである必要があるとされています。

内部リダイレクトのみを行い、ユーザーに URL の変更が表示されないようにしたい場合は、R=301,のフラグから を削除するだけで十分でしょうRewriteRule

末尾の / を必要としないようにするには、スラッシュまたは行末をテストします。

RewriteRule ^support(/.*|$) /blog/support$1 [NC,L]

関連情報