Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проще не бывает, но.. (mod_rewrite)
 
 автор: sasha1133   (19.04.2010 в 21:11)   письмо автору
 
 

не могу сделать, чтобы менялась ссылка вида

page01.html

на

index.php?page=1

Попробовал так (тестирую на денвере)

AllowOwerride All
RewriteEngine On
RewriteBase /
RewriteRule ^page([0-9]*)\.html$ index.php?page=$1 


что то не получается( я уже совсем запарился. сколько не читаю, принцип вроде понятен, а на практике ну никак!

  Ответить  
 
 автор: vadimka   (19.04.2010 в 21:55)   письмо автору
 
   для: sasha1133   (19.04.2010 в 21:11)
 

как вариант пропишите название папки(папок), где находится index.php
то что между localhost и index.php?page=$1
т.е. если localhost/papka/papka/

papka/papka/index.php?page=$1

  Ответить  
 
 автор: sasha1133   (20.04.2010 в 00:20)   письмо автору
 
   для: vadimka   (19.04.2010 в 21:55)
 

А как должен выглядеть .htaccess? Почему то сейчас вообще ошибка "Internal Server Error". Правильно, что после изменений в .htaccess нужно перезапускать дэнвер?

  Ответить  
 
 автор: sasha1133   (20.04.2010 в 00:24)   письмо автору
 
   для: sasha1133   (20.04.2010 в 00:20)
 

Сейчас выглядит так, ошибка пропала, но всё равно не работает. Видимо дело в регулярном выражении. Что здесь надо подправить?

RewriteEngine On

RewriteBase /

RewriteRule ^page([0-9]*)\.html$ index.php?page=$1 

  Ответить  
 
 автор: Trianon   (20.04.2010 в 00:44)   письмо автору
 
   для: sasha1133   (20.04.2010 в 00:24)
 

страница и файл у Вас в корень сайта помещены?

  Ответить  
 
 автор: sasha1133   (20.04.2010 в 00:55)   письмо автору
 
   для: sasha1133   (20.04.2010 в 00:24)
 

Наконец то хоть что то получилось!


RewriteEngine On

RewriteRule ^page/([0-9]*)/?$ index.php?page=$1 


Меняет ссылку "http://localhost/modrewrite/page/01" на "http://localhost/modrewrite/index.php?page=1". Пришёл к выводу, что дэнвер перезапускать не нужно, когда вносишь изменения в .htaccess.
Я вот не понимаю, за что отвечает ? в выражении ^page/([0-9]*)/?$

  Ответить  
 
 автор: Trianon   (20.04.2010 в 01:06)   письмо автору
 
   для: sasha1133   (20.04.2010 в 00:55)
 

что последний слэш необязателен.

  Ответить  
 
 автор: sasha1133   (20.04.2010 в 01:25)   письмо автору
 
   для: Trianon   (20.04.2010 в 01:06)
 

вопрос можно ставить только в конце строки? Или после любого символа?

  Ответить  
 
 автор: Trianon   (20.04.2010 в 01:41)   письмо автору
 
   для: sasha1133   (20.04.2010 в 01:25)
 

после любого символа или скобочного выражения
Вы не знаете, где регулярные выражения описаны?

  Ответить  
 
 автор: sasha1133   (20.04.2010 в 03:38)   письмо автору
 
   для: Trianon   (20.04.2010 в 01:41)
 

Что то знаю, чего то не знаю - поправимое дело) просто у меня практики нет

  Ответить  
 
 автор: Trianon   (20.04.2010 в 10:24)   письмо автору
 
   для: sasha1133   (20.04.2010 в 03:38)
 

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

  Ответить  
 
 автор: Zdraff   (20.04.2010 в 15:31)   письмо автору
 
   для: Trianon   (20.04.2010 в 10:24)
 

Еще можно купить бумажную книгу по теме, с ее помощью бывает проще разобраться.

  Ответить  
 
 автор: Trianon   (23.04.2010 в 03:08)   письмо автору
78.3 Кб
 
   для: Zdraff   (20.04.2010 в 15:31)
 

Дело в том, что (см. пруфпик в аттаче) её проще напечатать, чем купить.
Я так и сделал.

До последней поры, во всяком случае.
Может и переиздали уже...

  Ответить  
 
 автор: cheops   (23.04.2010 в 13:27)   письмо автору
 
   для: Trianon   (23.04.2010 в 03:08)
 

Переиздавали вроде недавно, но насколько я понял, каких-то существенных преимуществ у третьего издания по сравнению со вторым нет.

  Ответить  
 
 автор: sasha1133   (22.04.2010 в 20:29)   письмо автору
 
   для: Trianon   (20.04.2010 в 10:24)
 

Спасибо. Буду рад если ещё что нибудь посоветуете почитать, т.к. в нете натыкаюсь только на примеры, где не объясняется как что работает, а если и объясняется то или коротко или непонятно) Мне бы что нибудь по практическому применению mod rewrit'а

  Ответить  
 
 автор: sasha1133   (25.04.2010 в 03:12)   письмо автору
 
   для: sasha1133   (22.04.2010 в 20:29)
 

Ну, посоветуйте что нить!) Читаю Дж. Фридла регулярные выражения - классная книга. А по mod-rewrit'у?

  Ответить  
 
 автор: oliss   (20.04.2010 в 20:44)   письмо автору
 
   для: sasha1133   (20.04.2010 в 01:25)
 

?( квери стринг )

  Ответить  
 
 автор: sasha1133   (27.04.2010 в 15:58)   письмо автору
 
   для: sasha1133   (19.04.2010 в 21:11)
 

А как лучше организовать правила ? с абсолютным путём или относительным? просто с относительным у меня получается, что после перехода по первой ссылке я оказываюсь по адресу http://localhost/modrewrite/page/01. И после этого относительные пути уже строятся относительно http://localhost/modrewrite/page/01 (как я понимаю), и ведут на несуществующие страницы. Как грамотнее будет сделать? Может быть можно 1 раз указать переменную корня сайта и каждый раз её подставлять? Типо такого что ли:

RewriteRule ^page([0-9]*)\.html$ ROOT/index.php?page=$1

  Ответить  
 
 автор: oliss   (28.04.2010 в 07:54)   письмо автору
 
   для: sasha1133   (27.04.2010 в 15:58)
 

RewriteBase /

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования