Hogy lehet olyat csinálni hogy pl. valami.hu/valami?
Nem arra gondoltál, hogy index.php?mit=valami&post=5345 helyett valami.hu/valami/5345 linkjeid legyenek?
Ezt úgy lehet megoldani, hogy először is biztosnak kell lenni abban, hogy amit beírsz az ne legyen a szerveren, tehát ne legyen valami mappa és azon belül 5345 és azon belül valamilyen index. Ilyenkor 404-es hiba keletkezik, amit lehet kezelni, hogy 404 esetén mit töltsön be.
Minden HTTPD beállítást a daemon a .htaccess fájlból tölti be. Ebben az esetben ezt kell beírni:
ErrorDocument 404 /index.php
ilyenkor 404 esetén betölti az index.php-t amiből meg tudjuk vizsálni az adott URI-t ami hibás volt. Itt egy egyszeru pelda hogyan is mukodik ez:
<?php
function http_status($code = 200) // ezzel modositjuk a HTTP statuszt - ez a fuggveny el is hagyhato
{
// Allapotnevek
$string = array(
'200' => 'OK',
'301' => 'Moved Permanently'
);
$status = $string[$code];
// Mukodjon PHP 4.3.0 elotti verzioval is
@header("HTTP/1.1 $code $status");
@header("Status: $code $status", TRUE, $code);
}
// Kapjuk el azt az cimet, amit kertek es az alapjan dontsuk el, mit toltunk be:
$URI = (isset($_SERVER['REQUEST_URI']) ? substr($_SERVER['REQUEST_URI'], 1) : ''); // csak a [link] utani resz marad meg.
$URIparts = explode("/", $URI); // elvagjuk a stringet minden / jelnel, es egy tombot hozunk letre belole.
http_status(); // Http statusz atirasa; a fenti fuggvennyel.
print_r( $URIparts); // kiirja a tomb tartalmat.
?>
És a végeredmény:
Array ( [0] => valami [1] => 5345 )
Még bővebben itt talász róla leírást, ha tényleg ez kell:
Arra gondoltam amit a kérdésben írtam de azért kössz!
Még az is érdekelne hogy hogy lehet ilyet csinálni mint ez?:
page.php?4 vagy page.php?7
Ez is nagyon érdekelne
Le van írva a weblaboros linknél.
Ami neked kell az az "error document" elven alapul, ami fent is van. Ami viszont a különbség, hogy minden betöltéskor ellenőrizned kell az URI-t
Így nézne ki ebbez az esetben a page.php:
<?php
$URI = (isset($_SERVER['REQUEST_URI']) ? substr($_SERVER['REQUEST_URI'], 1) : ''); // csak a [link] utani resz marad meg.
$URIparts = explode("?", $URI); // per helyett ? menten vagjuk fel a stringet arrayva.
print_r( $URIparts); // kiirja a tomb tartalmat.
$betoltendo_oldal=$URIparts[1]; // ugye a 0. elem a ? elotti resz
?>
Az error document elv úgy működik, hogy te olyan oldalra hivatkozol ami nincs. Ekkor az apache (vagy bármilyen más daemon) 404-es hibával leáll, de te meg tudod adni hogy ilyen esetben milyen oldalt töltsön be. Ez is le van írva fentebb. Ha úgy akarod hogy ne kelljen page.php akkor elene így alakítsd ki. A probléma ezzel az, hogy csak abszolút elérési utakat használhatsz (pl. [link] /kepek/kep.jpg) a inkekeben.
Ezen felül létezik az átírási szabály alkalmazása, erről nem sikerült gyakorlati tapasztalatokat szereznem, de ahogy látom modult kell telepítened hogy működjön.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!