URL для начинающих переписать htaccess - PullRequest
1 голос
/ 25 февраля 2010

Я просто хотел бы переписать все запросы с:

http://example.com/products/product.cfm?id=product-name

до

http://example.com/products/product-name

и во-вторых,

http://example.com/category.cfm?id=some-category&sub=sub-category

до

http://example.com/some-category/sub-category

Вот что я попробовал:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^products/$1 ^products/product.cfm?id=$1 [NC] 

Я уверен, что это не имеет смысла, поскольку я действительно не знаю, что я делаю. Я надеялся, что кто-нибудь покажет мне, где я иду не так, чтобы я мог следовать примеру.

Спасибо! George

Ответы [ 3 ]

3 голосов
/ 26 февраля 2010

http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/

Мне не нравятся чистые ответы "ссылка", но ссылка выше очень полезна для меня:]

0 голосов
/ 26 февраля 2010

Что-то вроде этого:

RewriteCond %{query_string} &?id=([^&]+) [NC] 
RewriteRule ^/products/product.cfm$ /products%1? [R,NC,L]

# Fragile, this assumes that params will always be in order id= then sub=
RewriteCond %{query_string} &?id=([^&]+)&sub=([^&]+) [NC] 
RewriteRule ^/category.cfm?$ /%1/%2? [R,NC,L]

Флаг R в RewriteRule вызывает принудительное перенаправление (строка адреса посетителя изменится на новый URL). Снимите этот флаг для внутреннего перенаправления.

0 голосов
/ 26 февраля 2010

Используя mod_rewrite, вы можете написать:

RewriteRule ^products/([\w-]+)$ /products.cfm?id=$1&%{QUERY_STRING}

Это сделает перевод, который вы хотели, сохранив другие параметры в исходном URL. Он не будет обрабатывать категории, но я не уверен, что вы можете использовать их одновременно, как вы описали.

...