ColdFusion 10 で新しいサイトを開発しており、.htaccess ファイルを使用して URL の書き換えを行っています。他のインクルードなしで呼び出すと非常にうまく機能する 3 つのルールがあります。それらをインクルードでラップすると、エラーが発生します。
ここに私のルールがあります:
RewriteEngine on
RewriteRule ^advertise$ /index.cfm?Section=Advertise
RewriteRule ^bike/([0-9]+)/([0-9]+)/ /index.cfm?Section=Bike&BikeID=$1&FeatureID=$2
RewriteRule ^bike/([0-9]+)/ /index.cfm?Section=Bike&BikeID=$1
インデックス ページは、表示するセクションを特定し、次のようにヘッダーとフッターを囲む適切なファイルを呼び出します。
include "header.cfm";
include "#VARIABLES.Section#.cfm";
include "footer.cfm";
問題は、「Bike」ページ、つまり 2 番目の 2 つのルールではうまく機能しないことです。ヘッダー ファイルが何度か含まれているようで、CSS やその他のファイルへのリンクが悪く、ページが乱れています。ヘッダーとフッターのインクルードをコメントアウトすると、すべて正常に機能しますが、ヘッダーもフッターもありません。これは私が望んでいるものではありません。
// include "header.cfm";
include "#VARIABLES.Section#.cfm";
// include "footer.cfm";
URL 書き換えルールに、自転車のページが数回読み込まれて失敗する原因となるものはありますか?
http://flyingpiston2012-com.securec37.ezhostingserver.com/
こちらのページを試して、リンクをクリックして問題を確認してください。これを修正する方法についてのアイデアはありますか?
アップデート
URL 全体を含めてすべてのリンクを絶対リンクにすると、問題はなくなります。
<cfoutput>
<link href="#APP.Home#/bootstrap/css/bootstrap.css" rel="stylesheet">
</cfoutput>
それでも、ファイルへの絶対パスを含める必要はありません。なぜこれがうまくいかないのかについてのヒントはありますか?
アップデート
// THIS FIXES THE PROBLEM
<base href="#APP.Home#/">
<link href="/bootstrap/css/bootstrap.css" rel="stylesheet">
// THIS FIXES THE PROBLEM
<link href="#APP.Home#/bootstrap/css/bootstrap.css" rel="stylesheet">
// THIS IS THE PROBLEM
<link href="/bootstrap/css/bootstrap.css" rel="stylesheet">