Здравствуйте, дорогие форумчане. У меня возникла идея сделать на своем сайте ЧПУ-ссылки. C PHP файлами все было легко, но вот с .htacess было немного затруднительно. Из .../view_cat.php?cat=1 я превратил в .../cat/1 c помощью этих трех строк: RewriteRule ^cat/([0-9]+)([/]{0,1})$ view_cat.php?cat=$1&norec [L] RewriteCond %{QUERY_STRING} cat=([0-9]+)$ RewriteRule ^view_cat\.php$ /cat/%1? [L,R=301] В принципе все праволинейно. Но на этом я не остановился. Теперь я пытаюсь превратить .../view_cat.php?cat=1 в .../11klassniki/ Здесь я и застрял. Как бы я не мухливал с кодом, ничего не получается. :-( Вот собственно, и он: RewriteRule ^11klassniki/([a-zA-Z0-9]+)([/]{0,1})$ view_cat.php?cat=1$1&norec [L] RewriteCond %{QUERY_STRING} cat=([a-zA-Z0-9]+)$ RewriteRule ^view_cat.php?cat=1$ /11klassniki/ [L,R=301] RewriteRule ^material/([a-zA-Z0-9]+)([/]{0,1})$ view_cat.php?cat=2$1&norec [L] RewriteCond %{QUERY_STRING} cat=([a-zA-Z0-9]+)$ RewriteRule ^view_cat.php?cat=2$ /material/ [L,R=301] Финальный код должен делать вот так: 1) превратить .../view_cat.php?cat=1 в .../11klassniki/ 2) превратить .../view_cat.php?cat=2 в .../material/
Код (Text): RewriteCond %{THE_REQUEST} " /view_cat\.php\?cat=1 " RewriteRule ^ /11klassniki/? [R=301,L] RewriteCond %{THE_REQUEST} " /view_cat\.php\?cat=2 " RewriteRule ^ /material/? [R=301,L] RewriteRule ^11klassniki/$ /view_cat.php?cat=1 [L] RewriteRule ^material/$ /view_cat.php?cat=1 [L]
Откуда эта строка берётся? Из базы? --- Добавлено --- @Emilien, что-то мне кажется, что ваш код приводит к циклической переадресациии
@mkramer, это только кажется. Использование %{THE_REQUEST} как раз и позволяет избежать зацикливания, так как эта переменная содержит не результат преобразований, а исходный запрос клиента.
Так можно же тогда проще сделать Код (Text): RewriteBas / RewriteRule ^([0-9A-z]+)/$ /view_cat.php?cat_slug=$1 [L] А в view_cat.php уже искать категорию в базе данных не по id а по cat_slug. Так при добавлении новых категорий не придётся переписывать htaccess (регулярку не отлаживал, но вроде должна работать)
@Emilien, я нашел баг: Когда идешь на второю страницу категории, Код (Text): view_cat.php?cat=1&page=2 То почему-то не переводит на Код (Text): 11klassniki&page=2 остается также как без .htaccess, .../view_cat.php?cat=1&page=2