
次のような書き換えルールがあります:
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]