0

「abc.html」というファイルがあります。以前は、これは「abc.cfm」と呼ばれていました。部外者の観点からは、abc.cfmがまだ存在しているように見せたいです(そして、それはabc.htmlのコンテンツである必要があります)。

現在、私はこれをhtaccessに持っています:RewriteRule ^ abc.cfm $ abc.html [L]

これは完全に機能します。abc.cfmにアクセスすると、(ユーザーのPOVからの)リダイレクトとともにabc.htmlのコンテンツが表示されます。

問題は、abc.htmlにもアクセスできるようになり、コンテンツが重複していることです。これは、abc.cfmが元のURLであるという正規のURLを追加することで解決できます。htmlからcfmファイル(内部で再びhtmlを呼び出す)に301を含めることができるかどうか疑問に思いました。もちろん無限ループに入ることなく:-)

私は他の解決策も受け入れています。(ただし、abc.cfmファイルを指すリンクを変更することはできません。また、301をabc.htmlファイルにリダイレクトする必要はありません)

4

1 に答える 1

0
Redirect 301 /abc.html /abc.cfm

RewriteEngine onこの行をディレクティブの前に置きます。

mod_rewrite でそれを行いたい場合は、代わりに次を使用できます。

RewriteRule ^abc.html$ abc.cfm [R=301, L]

これにより、ユーザーのブラウザーは強制的に .cfm ページのみを要求できますが、サーバーは内部的に .html ページからコンテンツを取得することを認識しています。このルールは、上にリストした内部書き換えルールの前にある必要がありますが、RewriteEngine onディレクティブの後です。

于 2012-12-12T17:03:30.180 に答える