webForumDet fria alternativet

ErrorDocument 404 till sökfält

Webbutveckling

19 svar · 516 visningar · startad av silfver

Medlem sedan apr. 200312 679 inlägg
Frågan#1

Ska försöka förklara det här så enkelt som möjligt. :)

När man skriver fel adress till min hemsida, exempel:
https://www.silfver.se/error404 så hamnar man på en felsida som jag länkar till på följande sätt i .htaccess-filen:

ErrorDocument 404 /mapp/404.php

Men nu i stället så vill jag att den ska, antingen skriva ut det man skrev, och/eller, lägga till det i den här länken: http://www.silfver.se/index.php?s=ORD

Så om jag skriver https://www.silfver.se/error404 så ska den automatiskt göra en sökning: http://www.silfver.se/index.php?s=error404

Förstår ni?

Om det är helt omöjligt så skulle jag vilja att den i stället skrev ut det så här:
Följande sida kunde inte visas:
error404

Hoppas nån av er förstår vad jag menar och kan hjälpa mig. :)

Medlem sedan dec. 19996 721 inlägg
#2

Kolla upp vad som finns i $_SERVER['REDIRECT_URL']

Medlem sedan apr. 200312 679 inlägg
#3

emission skrev:

Kolla upp vad som finns i $_SERVER['REDIRECT_URL']

Var hittar jag den då? :p

Medlem sedan dec. 19996 721 inlägg
#4

I php...

Medlem sedan apr. 200312 679 inlägg
#5

emission skrev:

I php...

http://silfver.se/phpinfo.php där? Eller vad menar du?

Medlem sedan dec. 19996 721 inlägg
#6

silfver skrev:

http://silfver.se/phpinfo.php där? Eller vad menar du?

Varför inte testa lite?

Det är 404.php jag menar.

Medlem sedan apr. 200312 679 inlägg
#7

Hur fan ska jag testa när jag inte har en aning om hur jag ska göra? :p Sluta tala i gåtor.

Medlem sedan maj 2005353 inlägg
#8

http://se2.php.net/manual/en/reserved.variables.php#56909 kanske kan vara till hjälp

Medlem sedan juni 200032 967 inlägg
#9

Jag använder inte PHP, men jag gissar mig till att det emission menar är:

I 404.php, skriv lite php-kod för att se innehållet i miljövariabeln REDIRECT_URL. Jag kan inte php, som sagt, men det borde väl kunna se ut typ så här:

<?
echo $_SERVER['REDIRECT_URL'];
?>
Medlem sedan apr. 200312 679 inlägg
#10

Helmertz skrev:

http://se2.php.net/manual/en/reserved.variables.php#56909 kanske kan vara till hjälp

Jag förstår inte vad som ska stå i stället för

$mainPath = "/profiles/";

:l

Medlem sedan maj 2005353 inlägg
#11

Gissning: man tar allt som står bakom domänen i adressen, men tar bort mappen "profiles" för att få den sista delen av adressen, alltså den delen användaren gissat på (t.ex.). I hans fall är det "Jerry". Allt för att sökordet inte ska bli index.php?s=/profiles/Jerry

Medlem sedan apr. 200312 679 inlägg
#12

Jag fattar absolut ingenting. Hur jag än skriver så skriver koden bara ut 404 Page Not Found!

Medlem sedan dec. 19996 721 inlägg
#13

Skriv bara

echo $_SERVER['REQUEST_URI'];

i din fil, så har du det du ska utgå ifrån.

En redirect skulle kunna se ut så här:

header("Location: http://www.silfver.se/index.php?s=".urlencode($_SERVER['REQUEST_URI']));
Medlem sedan apr. 200312 679 inlägg
#14

emission skrev:

Skriv bara

echo $_SERVER['REQUEST_URI'];

i din fil, så har du det du ska utgå ifrån.

En redirect skulle kunna se ut så här:

header("Location: http://www.silfver.se/index.php?s=".urlencode($_SERVER['REQUEST_URI']));

Varför skrev du inte det direkt? ;)

Din kod genererar dock ett /, varför? Så om man skriver https://www.silfver.se/asd så vill den söka efter /asd. Kan man ordna det?

Medlem sedan dec. 19996 721 inlägg
#15

silfver skrev:

Varför skrev du inte det direkt? ;)

"Pedagogik genom att inte ge klipp-och-klistra-lösningar", kallar jag det :)

silfver skrev:

Din kod genererar dock ett /, varför?

För att URI:n börjar med ett '/'.

silfver skrev:

Så om man skriver https://www.silfver.se/asd så vill den söka efter /asd. Kan man ordna det?

Jajamen! :)

Medlem sedan apr. 200312 679 inlägg
#16

Nej, det där är inte pedagogik! Bara säg hur man gör! :birp

Medlem sedan dec. 19996 721 inlägg
#17

Använd funktionen trim eller funktionen substr för att plocka bort det inledande snedstrecket

Medlem sedan apr. 200312 679 inlägg
#18

emission skrev:

Använd funktionen trim eller funktionen substr för att plocka bort det inledande snedstrecket

Hm. Det var ju inte precis det enklaste att ge sig på. Jag har skrivit så här:

 header("Location: http://www.silfver.se/index.php?s=".urlencode(substr('$_SERVER['REQUEST_URI']', 1)));

Det fungerar inget vidare. :r

r/ Vad är det för fel på php-taggen? :o

Medlem sedan dec. 19996 721 inlägg
#19
 header("Location: http://www.silfver.se/index.php?s=".urlencode(substr($_SERVER['REQUEST_URI'], 1)));
Medlem sedan apr. 200312 679 inlägg
#20

Tack för hjälpen!

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)