被.htaccess困惑

时间:2012-02-13 11:31:38

标签: .htaccess coldfusion url-rewriting

道歉,但我对网址重写的了解有限!

我已经为我们的电子商务商店中的每个类别设置了网址。

我有一种感觉,我设置了一个非常漫长的方式,有人会介意检查我做了这个正确的方法吗?

理想情况下,我们只希望单词类别 - 适用于所有级别的所有类别,而不是工具列表和木材 - 但如果没有重定向导致错误,我无法找到一种方法。

这是我们的htaccess - :

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.xxxx.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.xxxx.co.uk/$1 [L,R=301]

RewriteRule Product-(.*)-(.*)-(.*)-(.*)-(.*)-(.*)\.html$ /Details.cfm?Name=$1&ProdID=$2&category=$3&secondary=$4&third=$5&brand=$6 [NC]
RewriteRule Brands-(.*)-(.*)\.html$ /Results.cfm?bname=$1&brand=$2 [NC]
RewriteRule Tools-(.*)-(.*)\.html$ /subcat.cfm?category=$2-$1&secondary=$3 [NC]
RewriteRule Timber-(.*)-(.*)\.html$ /subsubcat.cfm?category=56&secondary=$2-$1 [NC]
RewriteRule Category-(.*)-(.*)-(.*)-(.*)\.html$ /subsubcat.cfm?category=$3&secondary=$2-$1
RewriteRule List-(.*)-(.*)-(.*)-(.*)-(.*)\.html$ /Results.cfm?category=$1&secondary=$3&third=$2-$4

RewriteRule ([^\s]+)\s(.*) $1-$2 [NC,LP,R=301] 
*//RewriteBase /
*//RewriteRule ^(.*)%20(.*)$ $1-$2 [LP,R=301,L]

RewriteRule Festool-(.*)-(.*)\.html$ /SubCat.cfm?category=$1&secondary=$2
RewriteRule Lie_nielsen-(.*)-(.*)\.html$ /SubCat.cfm?category=$1&secondary=$2

任何帮助都会很棒!!

干杯,

1 个答案:

答案 0 :(得分:0)

通常,最好让应用程序层负责URL调度,因此您只需将Web服务器重定向到特定文件,ColdFusion将完成其余工作(例如通过匹配规则)。在http://coldcourse.riaforge.org/查看ColdCourse包,以避免重新发明轮子。 在这种情况下,您的.htaccess文件可以像

一样简单
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.cfm?course=%{REQUEST_URI} [L,QSA]