Сбит с толку .htaccess - PullRequest
       11

Сбит с толку .htaccess

0 голосов
/ 13 февраля 2012

Извините, но мои знания о переписывании URL ограничены!

У меня есть настроенные URL для перезаписи каждой из наших категорий в нашем интернет-магазине.

У меня такое чувство, что я настраиваю это очень долго, неужели кто-то может проверить, правильно ли я это сделал?

В идеале мы хотели бы просто слово category - для всех наших категорий на всех уровнях, а не инструменты - list - и timber - но я не мог придумать способ сделать это без ошибок, вызывающих перенаправление.

вот наш 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 голосов
/ 13 февраля 2012

Как правило, лучше, чтобы прикладной уровень заботился о распределении URL-адресов, поэтому ваш веб-сервер просто перенаправляет все в определенный файл, а ColdFusion сделает все остальное (например, сопоставляя правила). Взгляните на пакет ColdCourse на http://coldcourse.riaforge.org/, чтобы не изобретать велосипед заново. В этом случае ваш файл .htaccess может быть таким же простым, как

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