Autor Zpráva
IdemeNaHavaj
Profil
Ahoj mám problém, kôli .htaccess mam url v takomto nejakom tvare
example.com/ovocie/banany
čo je vlastne
example.com/?kategoria=ovocie&podkategoria=banany
a keď zadám neexistujúcu stránku
example.com/lol/132456/
tak mi to hodí úvodnú stránku.
Nefunguje mi toto:
ErrorDocument 404 /404/
Ako pre pekné url vytvoriť 404 not foud?
Kubo2
Profil
IdemeNaHavaj:
Predpokladám, že index.php načítava stránky z db nejak takto:
 <?php
// ...
// mysql_connect; mysql_query(set names utf8);
if (!empty ($_GET['kategoria']) 
&& !empty($_GET['podkategoria'])) {
$podkat_sql     = "select * from podkategorie where meno = '{$_GET[podkategoria]}' and vkategorii = '{$_GET[kategoria]}'";
$podkat_info = mysql_query($podkat_sql);
// ... vypis podkategorie ...
}
V tom prípade treba pridať blok kódu (ktorý tam už ale zrejme je), zachytávajúci situáciu, ak v db neexistuje kategória alebo podkategória a vkladajúci chybovú stránku.
<?
if (!$podkat_info){
http_response_code(404);
require('404.php');
exit;
}
IdemeNaHavaj
Profil
Kubo2:
Ako podľa toho keď je prvé slovo v URL /ovocie/ zisťujem či je v DB. Ale čo keď tam do URL napíšem niečo iné? Napr. /lol/rofl/ tak už nebude vedieť že je to ovocie a nepripojí sa to..

$adresa = explode("/", $_GET["url"]); 

$kat_url = $adresa[0];
if ($kat_url=="ovocie") {
$detail_ovocia_id = $adresa[2];
$detail_ovocia_url = $adresa[1];
}

if($detail_ovocia_id AND $detail_ovocia_url ){
..mysql pripojenie, načítanie a tak dalej, proste sa načíta z DB z týchto parametrov z URL.. a ak nieje adresa[0] "ovocie" tak tie premenné neexistujú..

Celá url vyzerá nejako takto
example.com / ovocie / názov-ovocia-ktory-je-v-DB / ID ovocia
Kubo2
Profil
... a ak tie premenne neexistujú, nemôžeš ich testovať v tej ďalšej podmienke, musíš ju mať zanorenú v tej prvej. Ale to len tak mimochodom.

1/ Ako vyzerajú tvoje rewrite pravidlá?
2/ A čo ak to pole vzniknuté z adresy nemá hodnoty pod indexmi 0, 1 alebo aj 2?

Riešenie je napísať si kód, ktorý ti v DB zistí či existuje v nejakej tvojej tabuľke záznam so žiadaným názvom a IDčkom ovocia, a ak nie, vyhodí chybovú stránku. Princíp je teda jednoduchý.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: