2008-08-12 20 views
3

私はこれを十分に説明することができますが、わからない場合は明示しようとします。mod_rewriteを使用して別のファイル接尾辞を別名に変換する

私は現在、ColdFusionを使用してサイトを開発しており、サイトでPHPを使用しているように見えるようにmod_rewriteルールを設定しています。 index.phpのリクエストはindex.cfmによって処理されます(* .phpを* .cfmにマップします)。

これは素晴らしい - これまでのところとても良いです。問題は、index.cfm(または任意のColdFusionページ)が直接要求された場合、404ステータスコードを返すことです。

mod_rewriteを使用して* .cfmファイルへのアクセスをブロックしようとすると、* .phpへのリクエストに対して404も返されます。

は、私は人々があなたを助けるためにそれを再作成する必要はありませんので、私のApacheの設定を変更するのではなく、あなたがすでに出発点として持っていた.htaccess

答えて

1

あなたはこのように、404ルールをスキップするSフラグを使用することができます。

RewriteEngine on 

# Do not separate these two rules so long as the first has S=1 
RewriteRule (.*)\.php$ $1.cfm [S=1] 
RewriteRule \.cfm$ - [R=404] 

あなたもAliasオプションを使用している場合、あなたはまた、PTフラグを追加する必要があります。詳細は、mod_rewrite documentationを参照してください。

0

ポストルールを使用する必要があります理解します。

最初に試してみると、.phpを.cfmファイルにマップするルールで[L]をテストすることをお勧めします。

0

。書き換えルールの2つの異なるグループを使用する必要があります.1つは.php、もう1つは.chmであり、RewriteCond%{REQUEST_FILENAME}で相互排他的にすることです。そして、jj33が示すように、フラグ[L]を使用してください。

ルールを.htaccessに保存できます。

関連する問題