Поиск:
  • Страница 1 из 1
  • 1
Модератор форума: Senator  
Решение проблемы ошибки 404 при входе из архива материалов
Дата: Воскресенье, 10.04.2011, 19:48 | Сообщение # 1
Offline
  • Проверенный
  • 1828 Сообщения

[Table]Вы наверное уже заметили,а может быть и нет,что при выполнении входа на любой сайт в системе Ucoz из архива новостей (или файлов,статей и т.д.) выскакивает страница ошибки 404 и сообщает ,что страница типа ла-ла-ла.ucoz.ru/news/2?YCgfU или ла-ла-ла.ucoz.ru/load/0-3?YCgfU (или чтото подобное) не
найдена. Если Вы такого не видели или просто не обращали внимания,то попробуйте на своём или любом другом сайте от Ucoz c главной страницы или в архиве материалов (только не в категориях,а всех материалов) выбрать любую страницу архива материалов переключателем страниц и войти на сайт со своим логином и паролем. Вы увидите страницу ошибки 404 ,хотя страница на самом деле существует.Приходится возвращаться назад или обновлять страницу,что не все пользователи будут делать.

Для того чтобы избежать этого и удержать пользователей на своём сайте я предлагаю вам следующий скрипт...Собственно два варианта,с таймером и без таймера редиректа.Пример работы скрипта вы можете увидеть на сайте автора.

Скрипт без таймера.

Особенности:
1. При выполнении входа на сайт выше описаным способам (из архива материалов) происходит редирект на ту же самую страницу с минимальной задержкой на странице ошибки 404 (задержка составляет доли секунды,в зависимости от скорости вашего интернет-соединения)
2. При переходе по несуществующей или удаленной внутренней ссылке сайта,происходит редирект на страницу с которой производился переход
3. При переходе по несуществующей или удаленной ссылке вашего с другого сайта открывается страница ошибки 404 (как и раньше) без всяких редиректов

И так,если у вас стандартная страница ошибки 404,то вам нужно загрузить свою (таких сотни готовых) чтобы была возможность редактирования

Вот сам скрипт ,его ставим в вашей страницы ошибки 404 [/Table]

Code
<script type="text/javascript">  
tmp=new Array();  
tmp2=new Array();  
param=new Array();  
get=location.search;  
domain=document.referrer+'/';  
domain=domain.substr(domain.indexOf('://')+3);  
domain=domain.substr(0,domain.indexOf('/'));  
if (get!='') {  
tmp=(get.substr(1)).split('&');  
for(i=0;i<tmp.length;i++) {  
tmp2=tmp[i].split('=');  
param[tmp2[0]]=tmp2[1];  
}  
}  
if (!(param["url"])) param["url"]=document.referrer;  
redir=false;  
function makeurl(system) {  
var url=param["url"];  
}  
function redirect() {  
if (redir) location.href=redir;  
redir=false;  
}  
document.write('<a style="display:none" href="'+domain+'">'+domain+'</a>');  
if ( domain == 'ВАШ ДОМЕН' ) {  
var ints = 1;  
function alertes () {  
document.getElementById('calc').innerHTML = ints;  
if ( ints == 0 ) {  
document.location.href = param["url"];  
ints = '--';  
}  
if ( ints > 0 ) {  
ints--;  
}  
};  
function refresh(){  
if(ints > 0) time_Interval = setInterval("alertes ()",1 );  
};  
refresh();}  
</script>

[Table]где ВАШ ДОМЕН меняем на ваш домен типа ла-ла-ла.ucoz.ru без http:// [/Table]

[Table]А это ставим в поле [/Table]

Code
<span style="display: none;" id="calc"> </span>

[Table]Скрипт с таймером.

Особенности:
1. При выполнении входа на сайт выше
описаным способам (из архива материалов) как всегда появляется страница ошибки 404 но уже с таймром обратного отсчета и соответствующей информацией,по истечении которого происходит редирект на страницу с которой производился вход на сайт
2. При переходе по несуществующей или удаленной внутренней ссылке сайта,происходит редирект на страницу с которой производился переход с тем же самым таймером
3. При переходе по несуществующей или удаленной ссылке вашего с другого сайта открывается страница ошибки 404 (как и раньше) без всяких редиректов

Вот сам скрипт ,его ставим в вашей страницы ошибки 404 [/Table]

Code
<script type="text/javascript">  
tmp=new Array();  
tmp2=new Array();  
param=new Array();  
get=location.search;  
domain=document.referrer;  
domain=domain.substr(domain.indexOf('://')+3);  
domain=domain.substr(0,domain.indexOf('/'));  
if (get!='') {  
tmp=(get.substr(1)).split('&');  
for(i=0;i<tmp.length;i++) {  
tmp2=tmp[i].split('=');  
param[tmp2[0]]=tmp2[1];  
}  
}  
if (!(param["url"])) param["url"]=document.referrer;  
redir=false;  
function makeurl(system) {  
var url=param["url"];  
}  
function redirect() {  
if (redir) location.href=redir;  
redir=false;  
}  
document.write('<a style="display:none" href="'+domain+'">'+domain+'</a>');  
if ( domain == 'ВАШ ДОМЕН' ) {  
var ints = 10;  
function alertes () {  
document.getElementById('calc').innerHTML = '<br><b><span style="color: #000000; font-size: 8pt;">Если эта страница всётаки существует,то Вы попадёте на неё через</span></b><b><span style="color: #ff0000; font-size: 13pt;"> '+ ints + ' </span></b><b><span style="color: #000000; font-size: 8pt;">секунд. В противном случае вы попадёте на предидущую страницу.</span></b>';  
if ( ints == 0 ) {  
document.location.href = param["url"];  
ints = '--';  
}  
if ( ints > 0 ) {  
ints--;  
}  
};  
function refresh(){  
if(ints > 0) time_Interval = setInterval("alertes ()",1000 );  
};  
refresh();}  
</script>

[Table]
А это ставим в поле ,это собственно и есть сам таймер (по умотчанию значение отсчета выставлено 10 сек.),вставляете его куда вам захочется в дизайне вашей страницы ошибки 404

Время можете задать самостоятельно в скрипте в значении var ints = 10 (где 10 ,и есть заданное время)
Затем так-же ,как и в первом случае, ВАШ ДОМЕН меняем на ваш домен типа ла-ла-ла.ucoz.ru без http://

Вот впринципе и всё...
На всякий случай вот вам уже готовые страницы 404 (одна с таймером,другая без) с установленными скриптами и дизайном
Скачать архив
Не забудьте сделать замены ,как описано выше (ВАШ ДОМЕН и т.д.) и проставить свои ссылки и ссылки на изображения

Пртестировано на Firefox, Opera, Safari, Google Chrome
На IE редирект при входе не работает (по понятным причинам),все остальное работает так-же, как описано выше

Ссылка на файл 1 [/Table]

  • Страница 1 из 1
  • 1
Поиск:
Администрация проекта не несет ответственности за публикуемые материалы.
Дизайн полностью принадлежит "Up-Rise.Ru".
Дизайн сайта разработал life_man.
© 2024 Сайт управляется системой uCoz.