Apache Coldfusion动态目录

Apache Coldfusion动态目录,apache,.htaccess,mod-rewrite,coldfusion,Apache,.htaccess,Mod Rewrite,Coldfusion,在Coldfusion中,我们有三个文件控制我们的类别 subcat.cfm level1 subsubcat.cfm level2 results.cfm level3 我们想要以下结构:oursite.co.uk/level1/、oursite.co.uk/level1/level2/、oursite.co.uk/level1/level2/level3/ 我已经开始在mod_rewrite中设置规则,但当然,当访问页面oursite.co.uk/level1/时,图像和css是无法找到的

在Coldfusion中,我们有三个文件控制我们的类别

subcat.cfm level1 subsubcat.cfm level2 results.cfm level3
我们想要以下结构:oursite.co.uk/level1/、oursite.co.uk/level1/level2/、oursite.co.uk/level1/level2/level3/

我已经开始在mod_rewrite中设置规则,但当然,当访问页面oursite.co.uk/level1/时,图像和css是无法找到的,因为所有内容都是基于根目录定位的

我们的第一条重写规则是

RewriteRule ^([^/]+)/$ /SubCat.cfm?catname=$1 [NC,L]
那么,是否可以单独使用apache mod_rewrite来实现这一点,或者需要在Coldfusion中进行一些操作

您可以使用排除不需要的页面:

RewriteCond %{REQUEST_URI} !^/(images|css|favicon\.ico|robots\.txt)
将其放在其应用的重写规则上方的行上,然后将对照上一个重写条件检查与重写规则匹配的任何请求,以确定是否应进行重写。
(这听起来可能有点自相矛盾,但知道在规则模式之后检查条件可能会很有用。)



会否定该条件,因此如果请求URI(主机名和端口后的部分)以
/images
/css
/favicon.ico
/robots.txt
开头,则不会按照该规则进行重写。

Hi@peter broughton再次感谢您的帮助!!在上面的重写规则之前,我已经尝试过重写cond规则,但不幸的是css和格式仍然不起作用。我是否需要将所有内容都更改为绝对路径?您不应该需要绝对路径(浏览器将自动执行此操作)。在firebug/devtools的net选项卡中查看请求/接收的内容。您不需要绝对路径,但这就是为什么我总是使用web根目录的绝对路径。它避免了这样的问题。好吧,我将重新措辞:您不需要绝对路径,也不需要绝对URL。无论是手动解析还是让浏览器解析,相关因素(对于mod_rewrite)是HTTP请求第一行中第二项的值,即分为请求uri和查询字符串的文本。如果重写规则/条件模式不匹配,它们将不会执行请求的操作。指定协议、主机和/或完整路径是检查路径是否正确的独立选择:P