|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии Модные URL в адресной строке |
Модные URL в адресной строке |
И так, я хочу сделать стильные адреса страниц в на страницах пользователей типа site.ru/$USERNAME$
Ну а там по ходу можно будет и другие страницы сделать. Есть уже готовый JS скрипт, который реализован через 404 страницу. Типа если указать в адресной строке адрес типа site.ru/$USERNAME$ то разумеется такой страницы нет, нас перекинет на 404, а там сработает скрипт, который перенесёт нас на страницу пользователя. Но вся эта багодельня работает через iframe. И по ряду причин (перечислять не буду), этот варик не совсем канает. Хотелось бы просто скрипт., который будет менять URL в адресной строке да и только. Ну или как-то иначе, но что бы без iframe всё это работало. Можно на JS можно на PHP не суть. Главное что бы работало как полагается. |
Цитата (Rad_van_Cor) Хотелось бы просто скрипт., который будет менять URL в адресной строке да и только. Нельзя просто так взять, и поменять url чтобы страница не перезагружалась. Добавлено (07 Май 2013, 12:55:29) Absit invidia verbo
|
Цитата (Komoff) я просто использую /index/8-0-$USERNAME$ раньше тоже самое использовал. Затем перешёл на JS скрипт, который переадресовывает с 404. Но сегодня заметил такую фишку. Во всех браузерах, всё нормльно. Но когда в IE открывается страница с модным адресом (та которая в iframe) она не совсем корректно отображается. Ну тогда я решил прописать DOCTYPE в файл 404.htm , отображатся страница стала как положено, НО перестала работать высота фрейма 100%. Тоесть без DOCTYPE высота фрейма 100% работала корректно, но после вставки DOCTYPE, 100% отображается примерно как 100-200px. Это одна из проблем. Цитата (Вансан) Нельзя просто так взять, и поменять url чтобы страница не перезагружалась. Ну значить нужно сделать редирект, но без дурацких фреймов. Уверен это вполне реально даже на uCoz ) |
Не забыл вашу помощь Держите http://yraaa.ru/publ/22-1-0-924
|
BigBooble, спасибо конечно) Но этот скрипт я знаю, про него я и говорил, он сделан через ifreme. А это не то, что мне требуется)
Добавлено (07 Май 2013, 13:21:16) Код <html> <head> <meta name="robots" content="noindex,nofollow"> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/yui/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/yui/2.6.0/build/connection/connection-min.js"></script> <title>...</title> <style type="text/css"> body {margin:0;background:#FFFFFF} body, td {font-family:Tahoma,Arial;font-size:12pt;color:#666666} #mop0 {display:none} </style> </head> <body > <div id="mop0">1</div> <div id="mop1">Страница не найдена</div> <script type="text/javascript"> var mylink = location.href; mylink = mylink.replace('http://'+location.host+'/', ''); if(mylink.substr(0,2) == 'id') { mylink = mylink.substr(2); start_pers(); } else {document.title='Ошибка'} function start_pers() { function include(id,file){ YAHOO.util.Event.onAvailable(id,function(){ var ok = function(o){ if(o.responseText !== undefined){ YAHOO.util.Dom.get(id).innerHTML = o.responseText; } } YAHOO.util.Connect.asyncRequest('GET', file, {success:ok}); }); } // Arguments: ID of the target element, path to the file new include('mop1','/index/8-'+mylink+''); } </script> </body> </html> |
Rad_van_Cor, а можно сделать например так:
Создать в корне папку users, там создать файл index.html, в котором прописать скрипт, который через функцию load выгружает всю необходимую информацию со страницы пользователя. Логин пользователя будет получаться через location.hash, а лучше даже через location.search, так логичнее. В случае, если указан некорректный логин - будет 404, если часть location.search в адресе вообще пропущена - можно выводить список всех пользователей. В итоге получим ссылки вида: Ну это так, навскидку Минус - если JS отключен - работать ничего не будет. Хотя, если JS отключен, то на сайте вообще половина всего работать не будет... Absit invidia verbo
|
|
Rad_van_Cor,
Цитата (Rad_van_Cor) Но адрес должен быть site.ru/$USERNAME$ а не site.ru/users?$USERNAME$ Это важно) Либо через хэш либо никак. Так тоже не подойдет, я так понял: site.ru/?$USERNAME$ Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8 Сообщение отредактировал fflesh - Среда, 08 Май 2013, 12:37:35
|
|
Цитата (fflesh) Так тоже не подойдет, я так понял: site.ru/?$USERNAME$ Цитата (Rad_van_Cor) Ну значить нужно сделать редирект, но без дурацких фреймов. Уверен это вполне реально даже на uCoz ) Если вас это устроит - такое сделать более чем просто. В той же 404 изменить скрипт на перенаправление и всё. Цитата (Rad_van_Cor) Если через хэш. Какие плюсы и минусы у этого варианта? Из минусов можно отметить чуть более долгую загрузку страниц. В случае, если передавать параметр через кэш - будет ещё невозможность перейти на профиль пользователя с главной страницы сайта (в случае, если ссылка открывается в этом же окне), и придётся сам скрипт помещать на главную страницу сайта. Потому лучше передавать через search. Тогда в любом случае будет идти перенаправление на 404, а там уже отработает скрипт. Absit invidia verbo
|
Цитата (Вансан) Редирект - это вот такой сценарий: пользователь переходит по ссылке site.ru/$USERNAME$ а его перебрасывает на site.ru/index/8-0-$USERNAME$. Ах, ну да, я как то и не подумал. Не то. С хэшем понял, в общем морочно. Через search не так красиво получается. Так что наверное придётся юзать по старинки через 404 и iframe Ну только если нет какого то более разумного варианта на PHP. За PHP ни кто ни чего так и не написал. |
Лови)) вроде бы без iframe. На своём сайте пробовал,работает. 404 менять можно.
http://uc-portaller.ru/load/33-1-0-3609 Добавлено (16 Фев 2015, 06:54:18) На IE всё работает. |
SMESHARARAM, однако пор***ха там и все слова не та
Добавлено (10 Ноя 2020, 20:18:33) |
| |||
| |||