Mod_rewrite (в который раз) NEED HELP!!!

F
На сайте с 09.03.2006
Offline
13
579

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

Вот проблемный код:

RewriteCond %{REQUEST_URI} ^/(..)/(.*)/[0-9*]\.php$

RewriteRule ^(..)/(.*)/([0-9*])\.php$ /index.php?lang=$1&des=$2&day=$3 [L]

Не хочет переходить по ссылке вида http://domain/ru/rozklad/1.php

Заранее спасибо!

Ёхан Палыч
На сайте с 07.05.2006
Offline
169
#1

feline, Вот так работает, попробуйте..

RewriteEngine on

RewriteBase /papka/

RewriteCond %{REQUEST_URI} ^/papka/(..)/(.*)/([0-9*])\.php$

RewriteRule ^(..)/(.*)/([0-9*])\.php$ /papka/index.php?lang=$1&des=$2&day=$3

F
На сайте с 09.03.2006
Offline
13
#2

Спасибо, конечно, но если без папки? Дело в том, что у меня там не одна эта команда... Мой .htaccess выглядит так:

AddDefaultCharset windows-1251

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} ^/(..)/(.*)\.php$

RewriteRule ^(.*)/(.*)\.php$ /index.php?lang=$1&des=$2 [L]

RewriteCond %{REQUEST_URI} ^/(..)/(.*)/[0-9*]\.php$

RewriteRule ^(..)/(.*)/([0-9*])\.php$ /index.php?lang=$1&des=$2&day=$3 [L]

Причем вариация с усиленной кокретикой тоже не помогает:

RewriteCond %{REQUEST_URI} ^/(..)/rozklad/[0-9*]\.php$

RewriteRule ^(..)/rozklad/([0-9*])\.php$ /index.php?lang=$1&des=rozklad&day=$3 [L]

:(

Хелпзонович
На сайте с 15.06.2005
Offline
133
#3

Как совет.

RewriteCond %{REQUEST_URI} ^/(..)/rozklad/[0-9*]\.php$

RewriteRule ^(..)/rozklad/([0-9*])\.php$ /index.php?lang=$1&des=rozklad&day=$2 [L]

Попробуйте поменять [L] на [R] Увидите в адресной строке куда апач перекинуть пытается.

Потому что у меня на локальной машине такая конструкция сработала.

Вы там держитесь! Хорошего вам настроения. Здоровья.
F
На сайте с 09.03.2006
Offline
13
#4

Даже никуда не редиректит! :(

Втупую игнорирует это правило...🙅

Может ли это быть из-за сбоя в апаче? Дело в том, что первое правило (см. выше) выполняется на "Ура!", а вот это, второе, - ни в какую...

Хелпзонович
На сайте с 15.06.2005
Offline
133
#5

попробуйте просто два таких правила

RewriteRule ^(..)/(.*)/([0-9*])\.php$ /index.php?lang=$1&des=$2&day=$3 [L]
RewriteRule ^(..)/(.*)\.php$ /index.php?lang=$1&des=$2 [L]

Именно в такой последовательности.

Если честно, то не понял зачем Вам RewriteCond ....

M
На сайте с 27.02.2006
Offline
62
#6

не понял..а зачем RewriteCond вообще?

так вот должно работать

RewriteEngine On
RewriteRule ^(.*)/(.*)\.php$ /index.php?lang=$1&des=$2
RewriteRule ^(.*)/(.*)/([0-9*])\.php$ /index.php?lang=$1&des=$2&day=$3
-> Продаю h4.ru (http://auction.nic.ru/search/list.cgi?s.keyword_in=&s.keyword=h4&s.domain_rubrics=&s.dom_length=2&x=35&y=4) Напишу парсер XML SQL CSV XLS любого объема и любого направления - от 0 до ... ГБ
F
На сайте с 09.03.2006
Offline
13
#7

Спасибо, помогли! :)

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

Насчет условий. Дело в том, что в другом проекте (портал) у меня в htaccess правил 10... Ну вот я каждому и прописывал конд, чтобы они не скрещивались между собой беспорядочно... А этот новый сайт просто строю на том же (личном) движке, вот и оставил конды из старого htaccess...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий