Вопрос по mod_rewrite

Кощей

if(!$needle) die("ooh");
Вопрос по mod_rewrite

Пользовался, раньше не возникало необходимости но теперь очень нужно чтобы
Я преобразую вот в такой вид ссілку на статью:
1) url.com/news/article112.html

но мне нужно чтобы по адресу
2) url.com/news/

Но если пишу условие для (2) ссылки, первая перестает работать, а открывает вторую
Вот мои условия

RewriteRule ^news/ new_index.php?go=cats&op=news [NC,L,NE]
RewriteRule ^news/(.*)/ new_index.php?go=artist&op=newst&name=$1 [NC,L,NE]
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
первая перестает работать, а открывает вторую
Это Вы о чём?
Пожалуйста, сначала попробуйте сами понять вопрос.

-~{}~ 11.09.07 22:38:

в ожидании объяснений....

Опечатки случайно нет?

RewriteRule ^news/(.*)/ new_index.php?go=artist&op=newst&name=$1
 

Кощей

if(!$needle) die("ooh");
Вот у меня есть два типа страницы.
Это вводная страница к разделу:
http://www.mysite.com/news/ - вот по этому урл будут сводки всех последних новостей по всем категориям

А вот так должен выглядеть адрес для статьи:
http://www.mysite.com/news/article[номер_статьи].html
 

Кощей

if(!$needle) die("ooh");
Автор оригинала: Mr_Max
Вы к статье обращаетесь
http://site.com/news/любые символы/
Нет это не к статье, это к списку статей по даному исполнителю. Прошу прощения, я выше просто указал укороченый вариант задачи.
Собственно, оно выглядит так
site.com/news/ - сводка новых новостей по всем исполнителям
site.com/news/Metallica/ -сводка новостей по группе металика, к примеру, либо любой другой, нахожу по слову айди группі и потом новости ей
site.com/news/Metallica/article17.html - статья,в разделе новости металики
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Кощей
какое правило должно быть для последней ссылки?
 

Кощей

if(!$needle) die("ooh");
RewriteRule ^news/(.*)/article([0-9]*)\.html new_index.php?go=artist&op=article&name=$1&sid=$2 [NC,L,NE]

но отображает по ссылке
site.com/news/Metallica/article698.html
тоже самое что и
site.com/news/Metallica/
свод новостей
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
news/(.*)/article([0-9]*)\.html
У вас урл может быть
site.com/news//article.html

?

Думаю нет.
по крайней мере в $1 уж точно должно быть хоть +

-~{}~ 11.09.07 23:28:

это относительно

ewriteRule ^news/(.*)/article([0-9]*)\.html new_index.php?go=artist&op=article&name=$1&sid=$2 [NC,L,NE]
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Нет, такой урл не нужен.
Так ведь есть же в $1 имя группы
Значит
^news/(.+)/article([0-9]*)\.html
или
^news/(.+)/article([0-9]+)\.html

-~{}~ 11.09.07 23:34:

такой реврайт срабатывает?

-~{}~ 11.09.07 23:35:

он включен?
 

Кощей

if(!$needle) die("ooh");
500 ошибка(
[Tue Sep 11 23:44:37 2007] [alert] [client 127.0.0.1] j:/home/akkords.com.ua/www/.htaccess: Invalid command 'ReRewriteRule', perhaps mis-spelled or defined by a module not included in the server configuration


Вот так сейчас выглядят правила:
RewriteRule ^news/(.*)/ new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
RewriteRule ^news/(.*) new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
ReRewriteRule ^news/(.+)/article([0-9]+)\.html new_index.php?go=artist&op=article&name=$1&sid=$2 [NC,L,NE]
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
500 ошибка(
[Tue Sep 11 23:44:37 2007] [alert] [client 127.0.0.1] j:/home/akkords.com.ua/www/.htaccess: Invalid command 'ReRewriteRule', perhaps mis-spelled or defined by a module not included in the server configuration


Вот так сейчас выглядят правила:
RewriteRule ^news/(.*)/ new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
RewriteRule ^news/(.*) new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
ReRewriteRule ^news/(.+)/article([0-9]+)\.html new_index.php?go=artist&op=article&name=$1&sid=$2 [NC,L,NE]
ReRewriteRule ^news/(.+)/article([0-9]+)\.html new_index.php?go=artist&op=article&name=$1&sid=$2 [NC,L,NE]
 

Кощей

if(!$needle) die("ooh");
Да, точно, поздно уже, такие мелочи незамечаеш. Всеравно в статью не заходит, отображает /news/(.*)/ и всё тут.

Может вы еще какие ошибки видите в даном коде
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
будьте немножко повнимательнее

-~{}~ 11.09.07 23:51:

3-е правилоработает?
 

Кощей

if(!$needle) die("ooh");
Нет, его перекрывают первые два, если удалить первые два то третье работает
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Нет, его перекрывают первые два, если удалить первые два то третье работает
1,2 правило не должно срабатывать если Вы запрашиваете урл конкретной стьи (3)

Скажите в правиле про конец строки

-~{}~ 12.09.07 00:06:

а поскольку у Вас нет в 1-2 правиле "конца" строки то правило срабатывает прекращая обработку реврайтом.
вот.
исправите 1-2
тестируйте по запросу 3

-~{}~ 12.09.07 00:07:

1-2-е правило можна, и нужно, заменить одним

Наколько я понимаю разница в этих правилах лишь в последнем /
 

Кощей

if(!$needle) die("ooh");
Автор оригинала: Mr_Max
Скажите в правиле про конец строки
Вот так типа:

RewriteRule ^news/(.+)/$ new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
RewriteRule ^news/(.+)$ new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
RewriteRule ^news/(.+)/article([0-9]+)\.html new_index.php?go=artist&op=article&name=$1&sid=$2 [NC,L,NE]

но второе правило всеравно неверно, теперь ссылка
/news/Metallica/ - работает , выводит новости металики
/news/Metallica/article11.html работает если не прописано второе правило, а как там вообще конец строки определить если символо * может біть разных

-~{}~ 12.09.07 01:10:

О написал, вот так рабоатет все три ссылки правильно:

RewriteRule ^news/(.+)/$ new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
RewriteRule ^news/(.[^/]*)$ new_index.php?go=artist&op=cat&name=$1&cid=1 [NC,L,NE]
RewriteRule ^news/(.+)/article([0-9]+)\.html new_index.php?go=artist&op=article&name=$1&sid=$2 [NC,L,NE]
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
RewriteRule ^news/(.+)/?$
?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
ну тогда уж [0-9a-z_-]
 
Сверху