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

Форум Регулярные Выражения

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вид ссылок

Сообщения:  [1-10]    [11-20]  [21-25] 

 
 автор: *m*   (04.09.2009 в 13:04)   письмо автору
 
   для: heed _   (04.09.2009 в 12:24)
 

слушайте точно про фигурные скобки то я не вспомнил и не подумал..)

  Ответить  
 
 автор: *m*   (04.09.2009 в 13:03)   письмо автору
 
   для: heed (. .)   (04.09.2009 в 12:06)
 

а если так оставить:
^warez/([0-9 ]+)([0-9 ]+)$
какая будет разница с этим:
^warez/([0-9 ]+)_([0-9 ]*)$
?? кроме подчеркивания и вхождений во второй паатерн ? и кастати обратите еще внимание я умышленно убрал знаки вопроса, такой вариант будет правельным?

  Ответить  
 
 автор: heed _   (04.09.2009 в 12:24)
 
   для: *m*   (04.09.2009 в 11:36)
 

Сколько угодно цифр не получится ,) 4 килобайта вроде максимум , что могут схавать некоторые серверы
, но Вам виднее .)
Можно попробовать использовать вместо квантификаторов +и* такие {1,4}и{0,4}

  Ответить  
 
 автор: heed (. .)   (04.09.2009 в 12:06)
 
   для: *m*   (04.09.2009 в 11:36)
 

Тогда лучше.бы изменить формат ссылки разделив числа, например символом "_"
(некоторые символы лучше не использовать)
получится
^warez/([0-9 ]+)_([0-9 ]+)/?$
, но если в первом случае достаточно было сделать ([0-9 ]*) или ([0-9 ]?) в какой-нибудь из подмасок
, чтобы допустить возможность передачи только одного параметра.
То здесь всё усложнится
Например так
^warez/([0-9 ]+)_?([0-9 ]*)/?$
чтобы обязательным былао только одно число

  Ответить  
 
 автор: *m*   (04.09.2009 в 11:36)   письмо автору
 
   для: heed   (04.09.2009 в 09:37)
 

а если id со временем вырастет до ста например? или до 10? то в $1 уже будет две цифры или три, то это будет:

^warez/([0-9]+)([0-9]+)$
?? тоесть либо одно либо более число вхождений.
и получаеться тогда в строку браузера можно прописать еще сколько угодно цифр, не будет ли это опасно?

  Ответить  
 
 автор: heed   (04.09.2009 в 09:37)   письмо автору
 
   для: *m*   (03.09.2009 в 23:08)
 

^warez/([0-9])([0-9]+)/?$
но в $1 всегда будет только одна цифра
и совпадает только если не менее двух цифр

  Ответить  
 
 автор: *m*   (03.09.2009 в 23:08)   письмо автору
 
   для: heed   (01.09.2009 в 19:06)
 

спасибо за помощь в принципе я окончательно разобрался все заработало..

только вот какой вопрос остался, смотрите, вы приводили мне примеры, когда гетом передавалась одна переменная..например:
domen.ru/warez.php?id=1 

делаю так:
RewriteRule ^warez/([0-9]+)$ warez.php?id=$1 [L,QSA]

все ок. А если две переменных:
domen.ru/warez.php?id=1&dom=3 

то по идее вот так:
RewriteRule ^warez/(.*)$ warez.php?id=$1&dom=$2 [L,QSA]

но в этом случае, если после слеша остаются только цифры то они как бы плюсуются чтоли, например, резулятом последнего стала ссылка вида:
warez/13

и запрос пытаеться достать из базы запись с индексом (id) 13, хотя на самом деле это id 1.
а например так:
warez/1&3
- работает.. А как сделать так чтобы работало в таком варианте:
warez/13
????

  Ответить  
 
 автор: heed   (01.09.2009 в 19:06)   письмо автору
 
   для: *m*   (31.08.2009 в 23:50)
 

можно было-бы сказать , что так и нужно сразу выводить "/1.html", вместо "/?id=1"
, но очень может быть что не везде из тех мест, куда попадёт этот скрипт будет использован mod_rewrite
, даже возможно не будет и apache.

Можно только просто сделать в том , из чего берутся настройки конфигурации , такой флаг, используются настоящие ссылки , или используются ссылки , которые разбираются mod_rewrite
, и взависимости от состояния этого флага скрипт должен генерировать один из двух возможных вариантов ссылок.
Дополнительные возможности требуют дополнительных действий,
в том-числе и проверки активировано-ли использование этих возможностей

  Ответить  
 
 автор: *m*   (31.08.2009 в 23:50)   письмо автору
 
   для: heed   (29.08.2009 в 17:20)
 

я понял.. хорошо, ну а как тогда мне сделать? как правильно...?
тоесть смотрите, вот у меня данные например хранятья в БД. в БД есть поле id оно автоинкремент. Есть файл например article.php который выводит данные из БД.
тоесть ссылка вывода всех записей будет выглядеть так: somesite.com/article.php?cat=1, например. А ссылки отображения конкретной записи будут выглядеть: somesite.com/article.php?id=1 /// 2,3,4 5 и.т.д соответсвенно.. Так вот, на стадии проектирования так сказать, как мне нужно сделать, чтобы в итоге у меня получились статичные ссылки???
Тоесть чтобы страница загружалась для пользователя сразу с уже статичными ссылками??

  Ответить  
 
 автор: heed   (29.08.2009 в 17:20)   письмо автору
 
   для: *m*   (29.08.2009 в 15:02)
 

> из динамических ссылок сделать статичные
сделать где??)

> index.php на index.html
так и не должно работать ,) там просто сделано так
, что при запросе URI /index.html , будет отдан /index.php ,
или результат того что с ним сделает обработчик.
И без разницы что там конкретно в html
, mod_rewrite ничего не заменяет, просто он реагирует на запрашиваемые адреса, анализируя их и даже иногда другие факты , и выполняется предписанное .

Конечно можно напрячь обработчик , например mod_php , тем чтобы он буферизовал выводимое, и отдавал только после замены там всех таких ссылок, но проще сделать чтобы ссылки сразу формировались такими какими нужны
, и менее затратно.

// сразу отказываюсь показывать примерно как это будет с буферизацией
, поскольку постолько над сервером нельзя так издеваться , только чтобы у браузеров были красивые ссылки )

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-25] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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