|
|
|
|
|
для: xx7
(14.01.2009 в 02:11)
| | >и начать разрабатывать новый сайт с нуля , но уже c человекомподменяемыми или человекопрочитабельными адресами взависимости от настроения
В следующий раз так и буду делать. Теперь знаю, что при неправильном использовании человекопонятный может превратиться в человеконепонятный. :)
Михаил, спасибо. | |
|
|
|
|
|
|
|
для: Trianon
(14.01.2009 в 09:49)
| | >Надеюсь, намек понят.
Понят. Только как можно что-то бояться, если ты об этом ничего не знаешь? Вот и поняла я, что реврайт с относительными ссылками не работает и пo другому - никак, нужны только абсолютные. Посмотрела - у меня все пути относительные. Хороший урок. Впредь буду знать.
>Между прочим...
Взяла в качестве разделителя _.
Адреса типа http://www.domen.ua/index_163_137 стали работать только тогда, когда я в разметку добавила базовый адрес <BASE HREF=...>
Иначе при нажатии на любую другую ссылку (не переделанную реврайтом) получалось вот что:
http://www.domen.ua/index_163_137?pade=45&foto=356.
PS.Метод с - или _(или др. разделитель) прошел проверку и получил название Trianon`s_rewrite :)
Спасибо. | |
|
|
|
|
|
|
|
для: Лена
(14.01.2009 в 00:13)
| | Между прочим... если в качестве разделителя параметров в этом самом ЧПУ применить не / (слэш), а скажем - (минус) , то проблема плавающей глубины вложенности уйдет. | |
|
|
|
|
автор: xx7 (14.01.2009 в 02:11) |
|
|
для: Trianon
(14.01.2009 в 01:02)
| | > человекоподобным
поправка, человекопонятийным :)
насчёт вопроса , стили могут пропасть ,если там ставятся относительные пути.
И это ещё не всё плохое что может случиться . Если например гдето есть формирования action из form
с помощью $_SERVER['PHP_SELF'], или применение других функций работающих с файловой системой для получения линков получится то-же что только наоборот.
Думаю это провод подумать не отказаться-ли от желания сделать адреса компактнее.
Это-бы неплохо работало , если-бы все стили, картинки лежали ближе к корню сайта,
а в коде страниц были-бы абсолютные пути.
Или вообще эта папка использовалась-бы только для показа картинок скриптом.
А так если теперь всё исправлять , то нужно знать какие там ссылки или линки возможны-то в этой дирректории /add/
Получится в лушем случае, ещё одно правило замены , но это будет наверное не лучшим выходом
Вобщем решать надо ,) изменить, ли скрипты и структуру того что в там есть , или делать ещё возможно не одно правило подмены,, или оставить всё как было , и начать разрабатывать новый сайт с нуля , но уже
c человекомподменяемыми или человекопрочитабельными адресами взависимости от настроения | |
|
|
|
|
|
|
|
для: Лена
(14.01.2009 в 00:13)
| | и ссылки на стили и ссылки на другие страницы у Вас страдают, потому что являются относительными, а значит отсчитываются браузером от базового каталога, которым по умолчанию является каталог документа, содержащего ссылку. Каталог - в понимании браузера, который никаких реврайтов не знает , не хочет и не может знать. Всё чем он обладает - это URI документа , который Вы сделали человекоподобным. Именно поэтому каталоговая глубина этого URI выходит на первый план.
На самом деле все это объяснять человеку, который не боится ни ЧПУ, ни таких ссылок с плавающей глубиной - дело совершенно не мое. Я в этом настолько профессионально, чтобы что-либо советовать, просто не разбираюсь. Почему и задал вопрос. Надеюсь, намек понят.
Если б мне до зарезу приспичили бы сделать подобную линковку, то я наверное бы применил что-нибудь вроде тега <BASE href=... > | |
|
|
|
|
|
|
|
для: Trianon
(13.01.2009 в 23:50)
| | Уже смущает. Но все равно это проблемы моей не решило. | |
|
|
|
|
|
|
|
для: Лена
(13.01.2009 в 23:19)
| | И Вас не смущает, что у них разная глубина вложенности каталоговой структуры? | |
|
|
|
|
|
|
|
для: Trianon
(13.01.2009 в 21:46)
| | >RewriteRule ^index/([0-9]+)/([_A-Za-z0-9]+)/?$ index.php?page_id=$1&quest=$2 [L,QSA]
/ может быть и может не быть.
Ссылка может быть такой index/35/45 или вот такой index/35/45/ | |
|
|
|
|
|
|
|
для: Лена
(13.01.2009 в 21:18)
| | RewriteRule ^index/([0-9]+)/([_A-Za-z0-9]+)/?$ index.php?page_id=$1&quest=$2 [L,QSA]
В регулярном выражении я выделил знак вопроса. Он случайно поставлен или осознанно? | |
|
|
|
|
|
|
| Есть файл index.php, находится он в корне и к нему подключаются и модули, и стили и все остальное.
Пробую с помощью модреврайта переделать ссылки в одном модуле. Все остальные пока не трогаю.
Кладу файл .htaccess в корень, прописываю в нем:
RewriteEngine on
RewriteBase /
#quest.tpl
RewriteRule ^index/([0-9]+)/([_A-Za-z0-9]+)/?$ index.php?page_id=$1&quest=$2 [L,QSA]
|
В шаблоне модуля(Смарти) quest.tpl пишу ссылку:
{foreach from=$quest item=one}
<p><A HREF='index/{$one.page_id}/{$one.id}'>{$one.main_text}</A></p><br>
{/foreach}
|
Когда кликаю по ссылке - стили исчезают, все остальное - на своих местах. В строке запроса -
http://avart.ua/index/163. Кликаю по другой ссылке этого же модуля - в адресной строке http://avart.ua/index/163/index/164/138 - получается, что все, что идет в строке дальше воспринимается не как запрос.
Добавляю в .htaccess флаг редиректа:
RewriteRule ^index/([0-9]+)/([_A-Za-z0-9]+)/?$ index.php?page_id=$1&quest=$2 [L,QSA,R] - и ссылки работают, как надо, то есть index.php учитывается.
Как мне учесть то, что запросы к страницам идут через index.php? | |
|
|
|
|