[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не получается преобразование урл'a
dadli
приветствую
решил разобратся в mod_rewrite и вот хател сделать такои простои преобразование

из етого урл-а:
http://chtotosait.com/statii.php?stat_id=29

получить такое:
http://chtotosait.com/statii_29.html


в фаиле .htaccess написал:
RewriteEngine on
RewriteRule statii_([0-9]+)\.html statii.php?stat_id=$1



ничего не изменилос, урл еше в таком виде:
http://chtotosait.com/statii.php?stat_id=29

скажите пожалуиста что я не правилно сделаю?



Спустя 3 минуты, 4 секунды (3.10.2011 - 22:44) Игорь_Vasinsky написал(а):
Пока начинаешь в этом сарае лазать - узай http://www.generateit.net/mod-rewrite/ для составления rules

Спустя 1 минута, 35 секунд (3.10.2011 - 22:46) Winston написал(а):
Попробуй переписать
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule statii_([0-9]+)\.html statii.php?stat_id=$1 [L,QSA]

А потом в адресной строке вызывай

http://chtotosait.com/statii_29.html




Спустя 1 минута, 10 секунд Winston написал(а):
Или так
RewriteRule ^statii_([0-9]+)\.html$ statii.php?stat_id=$1 [L,QSA]

Спустя 15 минут, 8 секунд (3.10.2011 - 23:01) dadli написал(а):
Игорь_Vasinsky
етот саит для потому, чтоб видет какои будет оптимални варянт урл'а да? ето хороши "веш" но пока хочу понимат как ето "звер" (mod_rewrite) работает )


Winston
оба варянтов тестировал, ничего не получилос, при визове http://chtotosait.com/statii_29.html видает что такои страница не шушествует sad.gif

Спустя 2 минуты, 47 секунд (3.10.2011 - 23:04) Winston написал(а):
dadli
А если пишешь в строке
http://chtotosait.com/statii.php?stat_id=29
То работает ?

Спустя 2 минуты, 51 секунда (3.10.2011 - 23:06) dadli написал(а):
Winston
да конечно

Спустя 4 минуты, 2 секунды (3.10.2011 - 23:11) Winston написал(а):
Не может быть, что реврайт не работает, показывай свой .htaccess и как прописываешь в адресной строке ?

Спустя 7 минут, 46 секунд (3.10.2011 - 23:18) dadli написал(а):
ох Winston извини, всо прекрасно работает я сделал ошибку, затупил, как кажется етот помагал: [L,QSA]
скажи прашу, что в квадратних скобках [L,QSA], скажи как ему називается, чтоб искат его в гоогле.

Спустя 40 секунд (3.10.2011 - 23:19) Игорь_Vasinsky написал(а):
RewriteEngine On
RewriteRule ^statii_([^/]*)\.html$ /statii.php?stat_id=$1 [L]


Проверка
http://chtotosait.com/statii_29.html

Winston
я вот этот метод вообще не понимаю
Цитата
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d



Спустя 15 минут, 51 секунда (3.10.2011 - 23:35) Winston написал(а):
Цитата (Игорь_Vasinsky @ 3.10.2011 - 23:19)
Winston
я вот этот метод вообще не понимаю
Цитата
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Ну смотри, обычно эти правила используют когда ты пишешь такое регулярное выражение
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

Здесь берется все, что находится после доменного имени и отправляется в переменную route которая в свою очередь обрабатывается обработчиком например таким.
Так вот к чему это я,
Если на странице в исходном коде будут например такие ссылки
<link href="/css/style.css" rel="stylesheet" type="text/css" />
<link
href="/css/action.css" rel="stylesheet" type="text/css" />
То они тоже попадут под правило регулярного выражения, и не смогут быть подключены.
Так вот, правила request_filename указывают, что регулярку нужно применять для тех ссылок которые не являются адресами файлов или директорий. (Надеюсь понятно объяснил если нет смотри ссылку ниже)

Цитата (dadli @ 3.10.2011 - 23:18)
скажи прашу, что в квадратних скобках [L,QSA], скажи как ему називается, чтоб искат его в гоогле

Можно посмотреть здесь
Чтобы долго не искать нажмите Ctrl+F и впишите в поиск QSA там отлично расписано.



Спустя 49 секунд Winston написал(а):
Цитата (Игорь_Vasinsky @ 3.10.2011 - 23:19)
^statii_([^/]*)\.html$

И что это ? blink.gif

Спустя 7 минут, 37 секунд (3.10.2011 - 23:42) Игорь_Vasinsky написал(а):
это онлайн генератор выдал.

Цитата
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


этот метод только для сайтов с одной точкой входа?

Спустя 47 секунд (3.10.2011 - 23:43) Winston написал(а):
Цитата (Игорь_Vasinsky @ 3.10.2011 - 23:42)
этот метод только для сайтов с одной точкой входа?

Да нет вроде... unsure.gif

Спустя 6 минут, 32 секунды (3.10.2011 - 23:50) Игорь_Vasinsky написал(а):
Цитата
Так вот, правила request_filename указывают, что регулярку нужно применять для тех ссылок которые не являются адресами файлов или директорий.


так вот что это... сенькс


_____________


когда чарли чаплин принимал участие в конкурсе: "клон чарли чаплинов", то чарли занимал третю позицию.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.