» »

Kako narediti redirect, če uporabnik vpiše napačno ime .html

Kako narediti redirect, če uporabnik vpiše napačno ime .html

Bogdan_77 ::

Pozdravljeni.

Na strani želim narediti redirect, če nekdo vpiše v adressbar napačno ime datoteke.

Primer: nekdo vpiše http://www.bogdan.com/bogdan.html
(domena bogdan.com je izmišljena, ampak že obstaja in deluje)
Imam že redirect stran (javascript), potrebujem še del kode, ki zazna, da stran ne obstaja.
Torej, namesto, da mi vrž ven error 404, naj me vrne na index.html (pred tem je seveda še stran z obvestilom, da vpisana stran ne obstaja).

Prosim za odgovor.

PS: Sem malo iskal po slo techu, pa mi rubrika iskanje vrne, da neregistrirani uporabniki ne morejo iskati ??

Lp
Bogdan

Ziga Dolhar ::

To boš moral nastavit na samem spletnem strežniku.
https://dolhar.si/

Bogdan_77 ::

Si prepričan - po mojem bi lahko kak javascript pomagal.
Strežnika nisem pooblaščen nastavljat.

Tody ::

Jap tam ko imaš nastavitve če strani ni dosegljiva ti piše da prikaže error 404 pobrišeš in mu daš pot do svoje datoteke...

Bogdan_77 ::

Glej, ko brskalnik ne najde strani tudi naredi redirect - jaz pa potem še enega - kako?
Strežnika ne morem nastavljat (amis.net).

Bogdan_77 ::

Če kaj pomaga - iz tega se sam ne znajdem najbol:


meta HTTP-EQUIV="Content-Type" Content="text-html; charset=Windows-1252">
title>HTTP 404 Not Found /title>

script>

function Homepage(){

// in real bits, urls get returned to our script like this:
// res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm

//For testing use
//DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm"
DocURL=document.location.href;

//this is where the http or https will be, as found by searching for :// but skipping the res://
protocolIndex=DocURL.indexOf("://", 4);

//this finds the ending slash for the domain server
serverIndex=DocURL.indexOf("/", protocolIndex + 3);

//for the href, we need a valid URL to the domain. We search for the # symbol to find the begining
//of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker.
//urlresult=DocURL.substring(protocolIndex - 4,serverIndex);
BeginURL=DocURL.indexOf("#",1) + 1;
urlresult=DocURL.substring(BeginURL, serverIndex);
if (protocolIndex - BeginURL > 7)
urlresult=""

//for display, we need to skip after http://, and go to the next slash
displayresult=DocURL.substring(protocolIndex + 3, serverIndex);

var aElement = document.createElement("A");
aElement.innerText = displayresult;
aElement.href = urlresult;

homepageContainer.appendChild(aElement);
}

function doSearch()
{
saOC.NavigateToDefaultSearch();
}

function initPage()
{
document.body.insertAdjacentHTML("afterBegin","object id=saOC CLASSID='clsid:B45FF030-4447-11D2-85DE-00C04FA35C89' HEIGHT=0 width=0>/object>");
Homepage();
}

script>


body bgcolor="white" onload="initPage()">

table width="400" cellpadding="3" cellspacing="5">
tr>
td id="tableProps" valign="top" align="left">img id="pagerrorImg" SRC="pagerror.gif"
width="25" height="33">/td>
td id="tableProps2" align="left" valign="middle" width="360">h1 id="errortype"
style="COLOR: black; FONT: 13pt/15pt verdana">span id="errorText">The page cannot be found/span>/h1>
/td>
/tr>
tr>
td id="tablePropsWidth" width="400" colspan="2">font
style="COLOR: black; FONT: 8pt/11pt verdana">The page you are looking for might have been
removed, had its name changed, or is temporarily unavailable.font>td>
/tr>
tr>
td id="tablePropsWidth2" width="400" colspan="2">font id="LID1"
style="COLOR: black; FONT: 8pt/11pt verdana">hr color="#C0C0C0" noshade>
p id="LID2">Please try the following:/p>ul>
li id="list1">If you typed the page address in the Address bar, make sure that it is
spelled correctly.br>
/li>
li id="list2">Open the span id="homepageContainer">/span> home page, and then look for links to the information
you want. /li>
li id="list3">Click the a href="javascript:history.back(1)">img valign=bottom border=0 src="back.gif"> Back/a> button to try another link. /li>
li ID="list4">Click a href="javascript:doSearch()">img border=0 src="search.gif" width="16" height="16" alt="search.gif (114 bytes)" align="center"> Search/a> to look for information on the Internet. /li>
/ul>

h2 id="ietext" style="font:8pt/11pt verdana; color:black">HTTP 404 - File not foundbr>
Internet Explorer BR>

McAjvar ::

@bogdan: kot je rekel ziggga, to je treba nastavit na serverju, tu ti noben javascript ne more pomagat.
situacija je v grobem taksna. tvoj brskalnik rece serverju, da hoce eno neobstojeco stran. server to vidi in potem se _server_ odloci, kaj naredit, pac glede na to, kako je nastavljen. tvoja skripta pride sele na vrsto takrat, ko se streznik odloci in poslje uporabniku stran, ki to skripto vsebuje.
torej to, kar rabis, je dejansko nastavitev na serverju, ni druge. ce gostujes in ce ti bodo na amisu naredili virtual host, jih lahko poprosis, ce za tvoj virtual host oni nastavijo redirekcijo za neobstojece strani na neko tvojo datoteko. to se moras torej pogovorit z amisovci, ki pa so naceloma zelo prijazno (po mojih izkusnjah) in se da hitro in marsikaj z njimi zmenit. najbolje, da povprasas na njihovem klicnem centru za zacetek, lahko pa pises na njihov naslov, pa bos videl, kaj bodo odgovorili.
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

McAjvar ::

Glej, ko brskalnik ne najde strani tudi naredi redirect - jaz pa potem še enega - kako?


ne drzi. ni, da brskalnik ne bi nasel strani. brskalnik samo poslje zahtevo na streznik, potem pa streznik vidi, da ne najde strani, streznik potem pogleda v svojih nastavitvah, kaj mu je v tem primeru narediti in streznik potem poslje nazaj stran z napako oz. preusmeri tvoj brskalnik na taksno stran. brskalnik jo samo prikaze, pac namesto strani, ki si jo zelel videt. ce pa ti uspe strezniku dopovedat, kam naj preusmeri brskalnik, ko pride do napake 404, potem si pa zmagal. ampak za to rabis rekonfigurirat streznik. torej, kontaktiraj amis, ce bos tam gostoval.
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

Tody ::

hja ni lih tko no... Recimor če v Firefox napišeš recimor namesto www.slo-tech.com slotech.com boš če ne najde pristal na googlu... če probaš to v IE pa boš pristal na error 404.

McAjvar ::

@tody:

kle se mal ne strinjam oz. je mal drugacna zadeva.
najprej, ce v ie vpises slo-tech.com, se odpre slo-tech. tudi slotech.com se odpre :D ce vpises naslov strani, ki ne obstaja in se nahaja na neobstojecem strezniku, bos v ie dobil the page cannot be displayed oz. the page cannot be found. pac, ker ni nobenega spletnega streznika (tudi ce domena obstaja oz. je veljavna), ki bi postregel s kako stranjo. porkusi v brskalnik vpisat fdkjdsfghdg.com recimo.
ce pa vpises veljavno domeno, za katero tudi laufa spletni streznik, zelis pa neobstojeco stran, pa dobis napako 404. za to pa pol velja to, kar sem ze napisal.

kar se pa tice ugibanja naslovov, je pa tko. brskalniki poskusajo bit pametni in skusajo pomagat uporabniku, ce zajebe situacijo. zato ti naceloma ni treba kucat http:// spredej, to brskalnik doda sam. tu so v igri razna prepoznavanja naslovov (za http, ftp, blah blah), v primeru npr. firefoxa pa je vgrajena sestava nekega naslova, v tem primeru specificno recimo, ce firefix ne najde npr. "pekarna" (proba najprej gledat, ce je to veljavna domena, pol proba, ce se ne motim, ce pekarna.(com|net|org), pa se z www spredej), potem bo sestavil en googlov query in te vrgel na prvo stran, ki jo google najde. kot ce bi sel na google, vpisal "pekarna" in kliknil i'm feeling lucky.

tako da to ni ravno isto in se tega ne da primerjat s sporocili serverjev, kar npr. napaka 404 tudi je.

p.s.: ce pa ti v ie res napise 404, pol pa ti svetujem, da si racunalnik temeljito preveris za adwarom in podobno saro, zaradi takih zadev se vcasih tudi lahko to dogaja.
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

Tody ::

No hotu sem dosečt samo tole :
potem bo sestavil en googlov query in te vrgel na prvo stran, ki jo google najde. kot ce bi sel na google, vpisal "pekarna" in kliknil i'm feeling lucky.


Torej obstaja neka skripta ki te preusmeri na neko stran, ko se enkrat ugotovi da stran ne obstaja. In ta skripta ki je vdelana v FF, bi se pač namestila na strežnik in namesto googlovega qurey dobit stran ki jo ti določiš. Če pa bo skripta lih tako delovala na strežniku kot v FF pa nevem..

Bogdan_77 ::

Hvala vsem.

Šef mi je zjutraj reko, da to gre in zdaj sem pač iskal več podatkov...

Bom še malo poguglal in sporočim, če kaj najdem.

Lp in še enkrat hvala.

Bogdan

McAjvar ::

:'( :(

in spet si pri prvotnem problemu: kako bos vedel, da si na neobstojeci strani? tega ne moreta vedet niti ti (kot programer/pisec strani) niti skripta. to ve edinole server. in ponovno, samo s pravilno konfiguracijo streznika, ne kake php/asp/blah skripte, bos dosegel, da streznik preusmerja uporabnike na ustrezne strani/skripte, ki nato obvestijo uporabnika, da strani s pr0nom, ki jih je iskal, ne obstajajo vec. :D
no... na apachu se tega naceloma ne da narest (overridat konfiguracijo mislm)... za iis pa je kar nekaj exploitov, tu pa bi to morda znalo bit izvedljivo >:D :D
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

Ziga Dolhar ::

V Apaću se da. Ampak le, če je tako nastavljen [beri: upošteva .htaccess datoteke].

ErrorDocument errornumber /file.html
https://dolhar.si/

snow ::

Z .htaccess:

<Files .htaccess>
order allow,deny
deny from all
</Files>

ErrorDocument 404 /errordocs/error404.htm


The first part stops people viewing your .htaccess file. The second part tells Apache to redirect any 404 errors to the file "error404.htm".
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

Zgodovina sprememb…

  • spremenilo: snow ()

McAjvar ::

ups, se opravicujem. moja napaka :)
kar sem hotel povedat je to, da naceloma s kako php skripto ali javascriptom ali kakimi podobnimi forami ne mores overridat apachejevih nastavitev. bom nehu rajs, da ne bom se kej zabluzil, ker se bom najbrz spet narobe izrazil :)
"[...] the advance of civilization is nothing
but an exercise in the limiting of privacy."
- Isaac Asimov

darh ::

obstaja tudi nek mod_spelling (enekaj podobnega) za apache, ki ti zna tud koristit... odvisno kaj točno bi rad naredu seve...
Excuses are useless! Results are priceless!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
!

Vse, kar ste si želeli vprašati o CSS, pa si niste upali. (strani: 1 2 3 423 24 25 26 )

Oddelek: Izdelava spletišč
1298347220 (6357) sunniegoldie
»

Prikaz strani na različni resoluciji-Joomla

Oddelek: Izdelava spletišč
151949 (1677) kr?en
»

php skripta za registracijo uporabnikov

Oddelek: Izdelava spletišč
162098 (1679) skorpio
»

phpbb2 login probelm!

Oddelek: Omrežja in internet
7932 (891) TICKO
»

Kako se tole naredi?

Oddelek: Izdelava spletišč
261507 (1207) njok

Več podobnih tem