私のウェブルートはexample.com
です。webrootの下に、という名前の2つのサブディレクトリがsub1
ありsub2
ます。中sub1
に私は以下を配置しました.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_URI} test\.me$ [NC]
#RewriteRule ^(.*)$ http://example.com/sub2/foo.html [L]
RewriteRule ^(.*)$ /sub2/foo.html [L]
誰かがアクセスしようとしたときhttp://example.com/sub1/test.me
、私は彼らにサービスを提供してほしいhttp://example.com/sub2/foo.html
。
上記.htaccess
は機能しません。フルパスでRewriteRuleのコメントを解除し、Webルートからの相対パスでRewriteRuleをコメントアウトすると、ほぼ意図したとおりに機能します(右側のページが表示されますが、表示されるURLもから http://example.com/sub1/test.me
に変更されますがhttp://example.com/sub2/foo.html
、これは変更されません。欲しかった)。
サイトルートに相対的なパスが機能しないのに、フルパスがほとんど機能する理由を理解できません。
そして、私のアプローチが機能しない理由と、このタイプのリダイレクトを行うための「ベストプラクティス」が何であるかを誰かが説明できれば、私は感謝します。