我正在 ColdFusion 10 中开发一个新站点,并使用 .htaccess 文件进行一些 url 重写。当我在没有其他包含的情况下调用它们时,我有三个非常有效的规则。当我将它们包装在包含中时,我得到一个错误。
这是我的规则:
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";
问题是,它不适用于“自行车”页面,即后两条规则。似乎头文件被多次包含,这使得指向 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">