Подскажите на счет mod_rewrite, никак не могу решить задачу!

12
P
На сайте с 13.10.2004
Offline
62
#11

SiGiN, было бы что в личку кинуть, я ведь на локальной машине тестирую, в онлайне у меня нет пока ничего. Когда протестирую, тогда и хостинг куплю и залью.

Я впринципе сам процесс-то понимаю что должно куда передавать, но вот почему не передает я не понимаю. У меня такое подозрение, что это все из-за самой системы на которой я все это делаю. У меня Дэнвер стоит, может быть все из-за него. Ладно, буду наверное делать не для всех случаев сразу, а для каждого отдельно, строчек 20-25 получится, надеюсь на производительности это не скажется, только путаница небольшая возникнет.

P
На сайте с 13.10.2004
Offline
62
#12

SiGiN, оказывается нельзя сделать так чтобы с конкретного слова шло перенаправление на конкретное слово, т.е. что-нибудь наподобие такого:

RewriteRule ^(Close)[/]?$ /input.php?Action=Close

Потому что если использовать ([a-z]+), то у меня идет смешивание запросов, т.к. у меня похожих строчек несколько и нельзя их использовать как каждую отдельную, они смешиваются и происходят ошибки. Всяко разно пробовал, и скобки убирал, и без скобок и со скобками, но вышенаписанная конструкция не работает.

[Удален]
#13

Как так - нельзя?

По аналогии:

RewriteRule ^ru/$ index.php?lang=ru [L]

RewriteRule ^en/$ index.php?lang=en [L]

С абсолютно работающего

сайта. Скопировал, так сказать, свежачком из htaccessa..

Или, как вариантец - RewriteRule ^r-ules/(.*)$ rules.php [L], оттуда же.. как более мягкий вариант обращения.

[Удален]
#14

Piotiger, попробуй либо так:

RewriteRule ^([A-Za-z0-9]+)[/]?$ /input.php?Action=$1 [L,NS]

либо:

RewriteCond %{HTTP_REQUEST} !-U

RewriteRule ^([A-Za-z0-9]+)[/]?$ /input.php?Action=$1 [L]

P
На сайте с 13.10.2004
Offline
62
#15

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

Вот кстати какие там записи:

RewriteEngine on

RewriteBase /

RewriteRule ^([0-9]+)[/]?$ /index.php?ID=$1 [L]

RewriteRule ^([0-9]+)/([0-9]+)[/]?$ /index.php?ID=$1&Name=$2 [L]

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)[/]?$ /index.php?ID=$1&Name=$2&Number3=$3&Number4=$4 [L]

RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)[/]?$ /index.php?ID=$1&Name=$2&Number3=$3

RewriteRule ^([A-Za-z0-9]+)/([0-9]+)/([0-9]+)[/]?$ /input.php?Action=DelImage&Name=$2&Number3=$3

RewriteRule ^([A-Za-z0-9]+)[/]?$ /input.php?Action=$1 [L]

RewriteRule ^([A-Za-z0-9]+)[/]?$ /input.php?Action=AdminPassword

P
На сайте с 13.10.2004
Offline
62
#16

В общем, нашел я причину почему не перенапрявлялось с конкретного слова на конкретное слово: оказывается... вот пример приведу

RewriteRule ^(Close)[/]?$ /input.php?Action=Close [L]

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

12

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