Autor Zpráva
tomas2245
Profil
Zdravím, mohol by mi prosím Vás pekne niekto vysvetliť ako funguje mod_rewrite na prepisovanie URL adries.?

mám tento kód:

Options +FollowSymLinks
RewriteEngine On
 
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
 
RewriteRule ^clanok/(\d+)*$ ./blog.php?clanok=$1

ktorý mi funguje správne: stranka.sk/blog.php?clanok=nejaky-clanok na: stranka.sk/clanok/nejaky-clanok

ale neviem či to takto stačí aby to bolo dobré pre vyhľadávanie SEO...

prípadne je ešte jedna možnosť cez miesto SCRIPT_FILENAME na REQUEST
to by potom vyzeralo ako? všetky adresy by sa dávali napr. do index.php a tam by boli if podmienky na header("location: ..."); ?

ale podľa toho druhého postupu sa mi to nedarí spojazdniť.

Za každu radu vopred veľmi pekne ďakujem
Josef Přerovský
Profil
RewriteRule ^clanok/(.*)$ blog.php?clanok=$1 [QSA]
Zkus
tomas2245
Profil
funguje to, ale stačí len takýto zápis? lebo iné riešenia sú aj také že sa to presmeruje na index.php a tam sa robia ďalšie kroky...
Joker
Profil
tomas2245:
Stačí, akorát to funguje jen pro adresy (web)/clanok/(něco)

Což může pro dané použití vyhovovat, ale někdy je praktičtější řešení zmíněné v [#3], tj. přesměrovat úplně všechno (co není adresa existujícího souboru) na jeden skript, který pak obstará ten zbytek (tj. rozhodne co zobrazit).
tomas2245
Profil
Joker:
vedel by si mi prosím ťa ukázať nejaký jednoduchý náčrt ktorý bude v tom index.php ako by mohol vyzerať?
T-fon
Profil
Říká se tomu routing, ukázka např. zde
tomas2245
Profil
super, toto som presne potreboval :) ďakujem
tomas2245
Profil
ono to funguje ale da sa na toto riesenie spravit aj s $_get parametrami?
lebo skusal som tie parametre get davat do htaccess ale asi to treba tiez spravit podmienky v index.php

$request = $_SERVER['REDIRECT_URL'];

switch ($request) {
    case '/clanok' :
        require __DIR__ . '/clanok.php';
        break;
    default: 
        require __DIR__ . '/404.php';
        break;
}
T-fon
Profil
Určitě najdeš nějaký návod i na toto, např.: blogs.shephertz.com/2014/05/21/how-to-implement-url-routing-in-php
A nebo bych doporučil využít nějakou hotovou knihovnu.
tomas2245
Profil
T-fon:
okej, ďakujem ti :)
tomas2245
Profil
ešte by som mal jednu otázku že keď mám na celej stránke už spravené takéto "routovanie" a nikde na stránke neodkazujem na reálne súbory príklad stranka.sk/blog/clanok.php?url=toto-je-clanok ale iba stranka.sk/blog/toto-je-clanok a podobne... google nebude indexovat tie adresy ak nie su nikde v html podobe zverejnené či ich treba nejako zakázať?
T-fon
Profil
Google neindexuje php soubory, ale URL adresy, čili zaindexuje stranka.sk/blog/toto-je-clanok. Čili na to, na co ty se odkazuješ, to ti google zaindexuje.
tomas2245
Profil
T-fon:
diky :)
Keeehi
Profil
tomas2245:
Pokud to ale někde náhodou najde, třeba pokud to nějaký bot náhodou vygeneruje a vytvoří odkaz (což se čistě teoreticky stát může) pak to google zaindexovat může. Spoléhat se na to že někdo něco nenajde jen proto, že o tom neví není typicky není dobrý nápad.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0