私のウェブルートは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、これは変更されません。欲しかった)。
サイトルートに相対的なパスが機能しないのに、フルパスがほとんど機能する理由を理解できません。
そして、私のアプローチが機能しない理由と、このタイプのリダイレクトを行うための「ベストプラクティス」が何であるかを誰かが説明できれば、私は感謝します。